vimでCを使用してスペースを自動インデントしますか?
-
01-07-2019 - |
質問
私は Eclipse と Java を使用するのに少し甘やかされてしまいました。Linux 環境で C コーディングを行うために vim を使い始めましたが、vim にブロックの適切な間隔を自動的に行わせる方法はありますか?
つまり、{ を入力した後、次の行には 2 つのスペースがインデントされ、その行で改行を押すと同じインデントが維持され、} を入力すると 2 つのスペースが戻されます。
解決
次の 2 つのコマンドで実行できます。
:set autoindent
:set cindent
ボーナスポイントを得るには、Linux のホームディレクトリにある .vimrc という名前のファイルにポイントを入れてください。
他のヒント
私 vim のタブについてすべて書きました, 、あなたが尋ねなかったいくつかの興味深いことがわかります。中括弧を自動的にインデントするには、次を使用します。
:set cindent
2 つのスペースをインデントするには (vim のデフォルトである 8 つのスペースからなる 1 つのタブの代わりに):
: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 ++でプログラムする場合に特に便利です。後者のスペース。
そして、スペース + タブに関するこの由緒正しい説明を常に覚えておいてください。
試す:
sw=2を設定
ts=2 を設定します
スマートインデントを設定する