Indentasi beberapa baris dengan VIM?

42

Misalnya, saya mengedit kode ini:

<html>
<body>
<script>
    var a = 10;
    a += 100;
</script>
</body>
</html>

sekarang saya perlu membuat indentasi baris skrip:

<html>
<body>
    <script>
        var a = 10;
        a += 100;
    </script>
</body>
</html>

Bagaimana saya bisa melakukan ini tanpa memindahkan kursor ke awal setiap baris dan tekan Tab?

wong2
sumber
Dalam mode perintah:gg=G
Pangeran John Wesley

Jawaban:

71

Tekan Vuntuk beralih ke mode VISUAL LINE dan sorot garis yang ingin Anda indentasi dengan menekan j. Kemudian tekan >untuk membuat indentasi mereka. Jadi perintah lengkapnya adalah Vjjj>.

Atau, letakkan kursor Anda pada <script>tag dan gunakan 4>>untuk indentasi empat baris.

dogbane
sumber
1
Juga, ketika mengubah beberapa tingkat indentasi,. sangat berguna (itu akan memindahkan 'blok' yang sama dengan visual, tanda atau [hitungan] seperti di atas 4 >>).
Pif
Juga, jika file sintaks Anda dapat melakukan pencocokan tag, Anda dapat memiliki kursor pada kata "script", dan tekan v untuk mode visual,% untuk pergi ke tag yang cocok, dan> untuk indentasi atau = untuk indentasi otomatis berdasarkan sintaks, jadi total perintahnya adalah v%> atau v% =
ben
Ini juga berfungsi dengan mode visual karakter-bijaksana (huruf kecil v), yang sedikit lebih mudah untuk diketik. So vjjj>
James Scriven
10

Untuk membuat indentasi semua baris di bawah baris saat ini

=G

Jadi, untuk membuat indentasi seluruh file, buka bagian awal file ( gg) dan kemudian indentasi semua baris di bawah baris saat ini ( =G)

gg=G

Untuk indentasi baris saat ini

==

Jadi, untuk membuat ngaris indentasi di bawah garis saat ini

n==

Misalnya, untuk indentasi 4 baris di bawah baris saat ini

4==

Ini adalah perintah paling sederhana untuk membuat indentasi beberapa baris.

Sagar Jain
sumber
8

Jika itu saya, saya akan perhatikan bahwa ada 4 baris untuk indentasi, posisikan ke baris atas dan kemudian ketik >4>. Jika ada terlalu banyak garis untuk dihitung, saya akan memposisikan ke atas baris dan mengetik mkuntuk membuat tanda bernama k, kemudian posisikan ke garis bawah (yang mungkin beberapa layar penuh), dan ketik>'k

Michael Dillon
sumber
Tip yang bagus untuk berhemat melakukan penghitungan garis, terima kasih!
flickerfly
3

Ini adalah pendekatan yang bagus, jika Anda mencoba membuat indentasi pada banyak baris:

:/<script>/,/<\/script>/ >>
bhinesley
sumber