web-dev-qa-db-ja.com

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

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

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

スクリプト行をインデントする必要があります:

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

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

51
wong2

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

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

82
dogbane

上記の回答を補足するには、こちらをご覧ください。 https://stackoverflow.com/questions/235839/how-do-i-indent-multiple-lines-quickly-in-vi

これには複数の方法があり、そこで提供されているドキュメントと競合することはできません。

私の個人的なお気に入りは==を自動インデントします。 5== 5行を自動インデントします。

17
user606723

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

=G

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

gg=G

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

==

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

n==

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

4==

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

11
Sagar Jain

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

9
Michael Dillon

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

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