13

viでコードの大きなブロックのインデントを増減する最も簡単な方法は何ですか?

4

11 に答える 11

14

vimでは(これがあなたにも当てはまるかどうかはわかりませんが)、>>1行をインデントするために使用します。vimのほぼすべてのコマンドと同様に、実行するコマンドが複数回実行される前に数値を入力します。したがって、次の50行をインデントするには、と入力し50>>ます。

于 2008-10-31T01:44:33.560 に答える
9

自動識別:

{}ブロックの場合、次のコマンドを使用します:= iB(ブロック内のカーソルで識別)

完全なファイルを再識別するには、gg=Gを使用します

ブロックの識別を増減するには、ブロックを選択する必要があり(viBコマンドを使用)、>>または<<を実行します。識別を繰り返す場合は、ドットを使用します。

また、インデント設定をで設定することを忘れないでください

:set shiftwidth = NUM​​OFSPACES

:set softtabstop = NUM​​OFSPACES

于 2008-10-31T01:50:16.543 に答える
3

マークを付けてから、>と<を使用します。

于 2008-10-31T01:39:40.107 に答える
3

コードが中括弧の間にある場合は、中括弧の1つにカーソルを置き、>%またはを使用します<%

于 2008-10-31T01:41:18.417 に答える
2

もう1つの便利なコマンドは、「<」または「>」を使用してインデントしたら、「。」を使用することです。希望どおりに整列するまでコマンドを繰り返します。

于 2008-10-31T04:03:29.537 に答える
2

また、この種のことに関するヒントについては、http: //vim.wikia.com/を参照してください。

于 2008-10-31T04:11:47.960 に答える
2

デフォルトでは、挿入モードでは、およびを使用Ctrl-TCtrl-Dて現在の行を de-/intent することができます。

于 2008-10-31T02:28:39.337 に答える
1

vを押してビジュアルモードに入り、下向き矢印を押してブロック全体を選択してから12 >>

于 2008-10-31T02:56:26.410 に答える
0

シフト幅文字で左または右の1行に2つの山かっこ("<<"または">>")を使用します。これは、一般的な行範囲インジケーター( ":m、n"、ブレース/ブラケット/パレンマッチングなど)を使用して実行できます。

または、「<」、次にモーションインジケータ、次に別の「<」。

または、「<12<」は次の12行を左にシフトします。

于 2008-10-31T01:44:11.143 に答える
0

まず、Control-g コマンドを使用して、開始行と終了行の行番号を見つけます。これらをmnとします。mからnまでの行番号を 5 つのスペースでインデントしたいとします。次に、次のコマンドでジョブを実行します。

:m,ns/^/     /g 

インデントを減らすには、まずすべてのタブを (たとえば 4 つの) スペースに変換します。

:m,ns/\t/    /g

次に、 mからnまでの番号が付けられた行から 3 つのスペースを削除したいとします。

:m,ns/^   //g
于 2012-07-11T18:06:52.807 に答える
0

:50,100>

50 行から 100 行までを 1 回インデントします

:50,100>>

行 50 から 100 を 2 回インデントします

< や << などでも動作します。

于 2009-02-14T23:09:33.087 に答える