87

私はEclipseとJavaを使ってやや甘やかされてきました。Linux環境でvimを使用してCコーディングを開始しましたが、vimにブロックの適切な間隔を自動的に実行させる方法はありますか?

したがって、{を入力した後、次の行には2つのスペースがインデントされ、その行に戻ると同じインデントが維持され、}は2つのスペースに戻りますか?

4

7 に答える 7

137

これらの2つのコマンドはそれを行う必要があります:

:set autoindent
:set cindent

ボーナスポイントについては、Linuxのホームディレクトリにある.vimrcという名前のファイルに入れてください

于 2008-09-18T22:41:16.690 に答える
57

はvimのタブについてすべて書きましたが、それはあなたが尋ねなかったいくつかの興味深いことを与えます。中括弧を自動的にインデントするには、次を使用します。

:set cindent

2つのスペースをインデントするには(8つのスペースの1つのタブではなく、vimのデフォルト):

:set shiftwidth=2

vimが8つのスペースをタブに変換しないようにするには:

:set expandtab

テキストのブロックのインデントを変更したい場合は、<と>を使用してください。私は通常、これをブロック選択モード(v、テキストのブロックを選択、<または>)と組み合わせて使用​​します。

(私(および他のほとんどの人)は読みにくいと思うので、2スペースインデントを使用しないように話そうとしますが、それは別の議論です。)

于 2008-09-18T22:47:32.620 に答える
8

多くのvimの機能(autoindentやなどcindent)はデフォルトでオフになっています。vimがあなたのために何ができるかを実際に見るには、まともなものが必要です~/.vimrc

良いスターターはにあり$VIMRUNTIME/vimrc_example.vimます。試してみたい場合は、

:source $VIMRUNTIME/vimrc_example.vim

vimにいるとき。

コメントが多いので、実際にコンテンツをコピーすることをお勧めし~/.vimrcます。vimの使い方を学び始めるのに適した場所です。あなたはこれを行うことができます

:e $VIMRUNTIME/vimrc_example.vim
:w! ~/.vimrc

これは現在のを上書きします~/.vimrcが、Davrが提案したインデント設定がすべてある場合は、vimrcの例でも同様に処理されるため、気にしないでください。例の完全なウォークスルーと、それがどのように機能するかについては、を参照してください:help vimrc-intro

于 2008-09-19T00:35:03.937 に答える
5

単に実行します:

user@host:~ $ echo set autoindent >> .vimrc
于 2010-04-17T07:10:13.900 に答える
4

最良の答えは実際にはvim wikiaで説明されていると思います:

http://vim.wikia.com/wiki/Indenting_source_code

「set autoindent」を使用しないことをお勧めします。この説明で私が見つけたすべての中で最も優れた機能は、ファイルごとの設定を設定できることです。これは、たとえば python と C++ でプログラムする場合に特に役立ちます。前者のタブには 4 つのスペースが必要で、タブには 2 つのスペースが必要です。後者のスペース。

于 2011-06-22T00:33:24.763 に答える
0

スペース + タブのこの由緒ある説明を常に覚えておいてください。

http://www.jwz.org/doc/tabs-vs-spaces.html

于 2008-09-18T23:09:28.200 に答える
-1

試す:

sw=2に設定

ts=2を設定します

smartindentを設定する

于 2008-09-18T22:40:44.727 に答える