2009-08-23 6 views
2

クイック初心者質問です。のは、私はVimの中で、次のコードを持っているとしましょう:行を自動的にインデントする方法は?

void main() 

{ 

    int i = i + 1; 

    return i; 
} 

私は2行のコードの間の空の行にカーソルを持っています。 i(またはa)を押してテキストを入力すると、カーソルが正しい位置にインデントされます(つまり、「int i ...」のiの下)。どのようにそれを行うことができます任意のアイデア?

答えて

2
:set cindent 
+0

のために空白行とOのCCを使用しています。私は ":cindentを設定"し、a(またはi)を押すと、最初の列にテキストを入力し、4番目(または他の列)にはテキストを入力しません。ところで 、私は セットsmartindent 設定タブストップ= 4 セットずらし幅= 4つの 任意のアイデア私の.vimrc セットオートインデントでこれらを持っていますか? – Mosh

+1

ああ、申し訳ありませんが、質問の一部を見逃しました。 'i'と' a'はすぐに自動インデントされません。それらの定義された振る舞いは、それぞれカーソルの後に挿入されます。もしあなたがEnterキーを押すとインデントされますが、新しい行を始めるには 'o'と' O'を使います。それは私があなたに何か他のことをしていたことに気づかなかったので、私には夢中になっています。 – chaos

+0

解決策は何ですか?私は空の行があり、私は右(インデントされた)位置に入力を開始したい。何か案は? – Mosh

0

int i...行に3を入力してみてください。まったく自動ではありませんが、時間を節約します。

6

@chaosと同様に、cindentはおそらくあなたが探しているものです。

すべての非常に設定可能とthe Vim documentation on indentで文書化されてautoindentsmartindent、およびindentexprは、もあります。

は、ここで彼らがいかに、設定の抜粋です:

 
{N Place opening braces N characters from the prevailing indent. 
       This applies only for opening braces that are inside other 
       braces. (default 0). 

       cino=    cino={.5s   cino={1s 
        if (cond)   if (cond)   if (cond) 
        {      {      { 
         foo;    foo;    foo; 

2

ちょうどそれが働いていない新しいライン

+0

この回答を確認しました。 ccはcindentをオンにして動作し、ddOは動作しません。面白い。 – Mosh

関連する問題