VIMで複数行をインデントしますか?


42

たとえば、私はこのコードを編集しています:

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

次に、スクリプト行をインデントする必要があります。

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

カーソルを各行の先頭に移動してTabキーを押さずにこれを行うにはどうすればよいですか?


コマンドモード:gg=G
ジョンウェスリー王子

回答:


71

を押しVてVISUAL LINEモードに切り替え、を押してインデントする行を強調表示しますj。次に、押し>てインデントします。したがって、完全なコマンドはになりますVjjj>

または、<script>タグにカーソルを置き、を使用4>>して4行インデントします。


1
また、複数のインデントレベルを変更する場合は、。これは非常に便利です(視覚、マーク、または上記の4 >>のような[カウント]で同じ「ブロック」を移動します)。
ピフ

また、構文ファイルでタグマッチングを実行できる場合は、「script」という単語にカーソルを置き、vを押してビジュアルモード、%で一致するタグに移動、>でインデントまたは=で構文に基づいて自動インデントできます。したがって、合計コマンドはv%>またはv%=になります
ベン

これは、文字単位の視覚モード(小文字のv)でも機能します。これは入力が少し簡単です。だからvjjj>
ジェームズ


10

現在の行の下にあるすべての行をインデントするには

=G

したがって、ファイル全体をインデントするには、ファイルの先頭(gg)に移動してから、現在の行の下にあるすべての行をインデントします(=G

gg=G

現在の行をインデントするには

==

したがって、n現在の行の下に行をインデントするには

n==

たとえば、現在の行の下に4行インデントするには

4==

これらは、複数行をインデントする最も簡単なコマンドです。


8

私の場合、インデントする行が4行あり、一番上の行に配置してからを入力し>4>ます。カウントする行が多すぎる場合は、一番上の行に配置してmkkという名前のマークを作成し、一番下の行に配置して(数画面分離れている場合があります)、入力します>'k


行で計算を行うのを節約するための素晴らしいヒント、ありがとう!
フリッカーフライ

3

多数の行にわたってインデントしようとしている場合、これは素晴らしいアプローチです。

:/<script>/,/<\/script>/ >>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.