15

複製:

Windowsのvimエディターでコードをインデントする方法は?

VIM で選択したセクションをタブ移動する

Vim で C コードのブロックをインデントしたい場合があります。私は通常、行ごとにタブで移動しました。

より良い/より速い方法は何ですか?

4

8 に答える 8

37

まだ誰も思いつかなかったことに驚いて=%います。
を持っていることを確認し、自分のブロック の 1 つに身を置いて:set cindent、次のように叩きます。
{}

=%

このブロック内のすべてのコードは正しくインデントされます。

于 2009-03-11T16:51:53.630 に答える
8

ブロックにタブを付けるには「>」を使用します

于 2009-03-11T16:32:22.697 に答える
7

ビジュアルモードに入り、次の一致するブラケットまで選択し、インデントします:

V
%
>
于 2009-03-11T16:31:39.297 に答える
4

挿入中: Cd、Ct
ビジュアル中: >、<
通常中: >>、<<

このモードのいずれかで「.」を使用します。さらにインデントします。

于 2009-03-11T16:36:09.020 に答える
1

試す

:セット シンデント

これにより、vim で C インデント マジックがオンになります。したがって、ブレースを開くとすぐに、ブレースを閉じるまで自動的にタブになります。

于 2009-03-11T16:32:33.617 に答える
0

スキンプが言ったことに加えて、あなたが持っているなら:

   int foo()
   {
   /* line 1 */
       /* line 2 */
       /* line 3 */
       /* line 4 */
   }

そして、何らかの理由で、このように表示したい(つまり、シンデントルールに従って「正しく」インデントするのではなく、すべてを以前の場所から4スペース*インデントしたい):

   int foo()
   {
       /* line 1 */
           /* line 2 */
           /* line 3 */
           /* line 4 */
   }

ブロック内の任意の場所で、viB>(visualselection innerBlockインデント)**を実行します

*またはシフト幅が設定されているものは何でも

**vi}はviBと同じであり、vi}は{}内で選択し、vi)は()内で選択し、vi]は[]内で選択し、vi>は<>内で選択するため、覚えやすい場合があります。

また、va}、va)などは、ブロック内に含まれているものに加えて、{}、()などを選択します。

于 2009-03-11T17:05:37.157 に答える
0

次のようなインデントされていないコードがある場合...

if (foo)
{
/* line 1 */
/* line 2 */
/* line 3 */
}

...コマンド モードでカーソルを「1 行目」に置き、 と入力します3==。ここで、3 はインデントする行数です。

于 2009-03-11T16:37:02.373 に答える