私はEclipseとJavaを使ってやや甘やかされてきました。Linux環境でvimを使用してCコーディングを開始しましたが、vimにブロックの適切な間隔を自動的に実行させる方法はありますか?
したがって、{を入力した後、次の行には2つのスペースがインデントされ、その行に戻ると同じインデントが維持され、}は2つのスペースに戻りますか?
私はEclipseとJavaを使ってやや甘やかされてきました。Linux環境でvimを使用してCコーディングを開始しましたが、vimにブロックの適切な間隔を自動的に実行させる方法はありますか?
したがって、{を入力した後、次の行には2つのスペースがインデントされ、その行に戻ると同じインデントが維持され、}は2つのスペースに戻りますか?
これらの2つのコマンドはそれを行う必要があります:
:set autoindent
:set cindent
ボーナスポイントについては、Linuxのホームディレクトリにある.vimrcという名前のファイルに入れてください
私はvimのタブについてすべて書きましたが、それはあなたが尋ねなかったいくつかの興味深いことを与えます。中括弧を自動的にインデントするには、次を使用します。
:set cindent
2つのスペースをインデントするには(8つのスペースの1つのタブではなく、vimのデフォルト):
:set shiftwidth=2
vimが8つのスペースをタブに変換しないようにするには:
:set expandtab
テキストのブロックのインデントを変更したい場合は、<と>を使用してください。私は通常、これをブロック選択モード(v、テキストのブロックを選択、<または>)と組み合わせて使用します。
(私(および他のほとんどの人)は読みにくいと思うので、2スペースインデントを使用しないように話そうとしますが、それは別の議論です。)
多くの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
。
user@host:~ $ echo set autoindent >> .vimrc
最良の答えは実際にはvim wikiaで説明されていると思います:
http://vim.wikia.com/wiki/Indenting_source_code
「set autoindent」を使用しないことをお勧めします。この説明で私が見つけたすべての中で最も優れた機能は、ファイルごとの設定を設定できることです。これは、たとえば python と C++ でプログラムする場合に特に役立ちます。前者のタブには 4 つのスペースが必要で、タブには 2 つのスペースが必要です。後者のスペース。
スペース + タブのこの由緒ある説明を常に覚えておいてください。
試す:
sw=2に設定
ts=2を設定します
smartindentを設定する