viでコードの大きなブロックのインデントを増減する最も簡単な方法は何ですか?
11 に答える
vimでは(これがあなたにも当てはまるかどうかはわかりませんが)、>>
1行をインデントするために使用します。vimのほぼすべてのコマンドと同様に、実行するコマンドが複数回実行される前に数値を入力します。したがって、次の50行をインデントするには、と入力し50>>
ます。
自動識別:
{}ブロックの場合、次のコマンドを使用します:= iB(ブロック内のカーソルで識別)
完全なファイルを再識別するには、gg=Gを使用します
ブロックの識別を増減するには、ブロックを選択する必要があり(viBコマンドを使用)、>>または<<を実行します。識別を繰り返す場合は、ドットを使用します。
また、インデント設定をで設定することを忘れないでください
:set shiftwidth = NUMOFSPACES
と
:set softtabstop = NUMOFSPACES
マークを付けてから、>と<を使用します。
コードが中括弧の間にある場合は、中括弧の1つにカーソルを置き、>%
またはを使用します<%
。
もう1つの便利なコマンドは、「<」または「>」を使用してインデントしたら、「。」を使用することです。希望どおりに整列するまでコマンドを繰り返します。
また、この種のことに関するヒントについては、http: //vim.wikia.com/を参照してください。
デフォルトでは、挿入モードでは、およびを使用Ctrl-T
しCtrl-D
て現在の行を de-/intent することができます。
vを押してビジュアルモードに入り、下向き矢印を押してブロック全体を選択してから12 >>
シフト幅文字で左または右の1行に2つの山かっこ("<<"または">>")を使用します。これは、一般的な行範囲インジケーター( ":m、n"、ブレース/ブラケット/パレンマッチングなど)を使用して実行できます。
または、「<」、次にモーションインジケータ、次に別の「<」。
または、「<12<」は次の12行を左にシフトします。
まず、Control-g コマンドを使用して、開始行と終了行の行番号を見つけます。これらをmとnとします。mからnまでの行番号を 5 つのスペースでインデントしたいとします。次に、次のコマンドでジョブを実行します。
:m,ns/^/ /g
インデントを減らすには、まずすべてのタブを (たとえば 4 つの) スペースに変換します。
:m,ns/\t/ /g
次に、 mからnまでの番号が付けられた行から 3 つのスペースを削除したいとします。
:m,ns/^ //g
:50,100>
50 行から 100 行までを 1 回インデントします
:50,100>>
行 50 から 100 を 2 回インデントします
< や << などでも動作します。