2010-12-18 28 views
33

どのようにしてvimが新しい行、すなわち|で始まる中括弧内にカーソルを置くようにするのですか?カーソル位置表す:それだけでない私の設定で、今Vim改行で自動インデント

class { 
    | 
} 

をこの

class { 
|} 

私は

noexpandtab私のファイル.vimrc セットオートインデントずらし幅= 2タブストップ= 2でこれを得ました基本的には、通常のIDEがどのようにインデントするかだけです。

更新:

Iはinoremap { {<CR>}<Esc>O

答えて

9

あなたの.vimrcでこれを入れて:あなたはそれになりたい場所

imap <C-Return> <CR><CR><C-o>k<Tab> 

autoindentsmartindentが正しく設定されていると仮定すると、中括弧の間Ctrl + Returnを入力すると、カーソルを置きます。

+0

ありがとう!!それは動作します:P – Zen

+0

とにかくそこにそれを入力するためにマップするにはありますか?私はこの間に日食を使用していたので、ちょうどキーを入力するのに慣れています。 – Zen

+0

またはこれを特定の言語のインデントファイル内に統合する方法はありますか? – Zen

10

autoindentでこれを行う方法が見出さは、後続の行に現在インデントレベルにわたって運ぶことを意味します。構文に従ってインデントを取得するには、smartindentまたはcindentのようなフラグも指定する必要があります。

+0

を使用prob、私はちょうど私が正しいインデントで入力をヒットすると自動的に挿入された改行をしたい – Zen

+0

私は混乱しています。あなたは挿入モードの外ですか?'i'を押して' Return'を押すと、あなたが望む動作を得られますか? –

+0

はい私は挿入モードです。私が望むのは、{私がvimに私の質問の最初のブロックであるclosing内に新しい行を置いてほしい}の後にEnterを押したときです。 – Zen

21

私は、delimitMateがあなたの説明とまったく同じことをしていることを発見しました。つまり、自動的に末尾に}を挿入します。 delimitMateにあなたの設定にlet delimitMate_expand_cr=1を加えることによって、キャリッジリターンを拡大するように指示しなければならないことに注意してください。

私の所見から、これはまさにTextMateとSublimeTextの動作です。

+0

delimitMate + neocomplcacheのユーザーのためのFYI:デフォルトのneocomplcache .vimrc設定を使用する場合、両方のプラグインに対応するようにマッピングを調整する必要があります。詳細はこちら[こちら](https://github.com/Raimondi/delimitMate/issues/111)。私の.vimrcは 'imap pumvisible()ですか? neocomplcache#smart_close_popup(): ' delimitMateCR''と両方のプラグインが好きなように動作します – bknoles

+4

'delimitMate'の' expand_cr_1'は最近動作していません。代わりに 'imap pumvisible()を使用できますか? "\ ": " delimitMateCR"。 –

17

私はUbuntu 12.04を持っていて、ホームディレクトリにはvimrcというファイルが見つかりませんでした。グローバルvimrcファイルは/etc/vim/vimrcにありました。
このファイルにはほとんど何もありませんでした。私にとってだから、それはあなたが}、アップ、終わり、入力し、入力し、それを組み合わせ{によって変更されます{次の時間を入力しますとき/etc/vim/vimrc

set autoindent 
set cindent 
inoremap { {<CR>}<up><end><CR> 

の最後に、この3行を追加して働きました。 cindentautoindentは必要な量のタブを追加します。
P.S.私はvimをチューニングするのが良くないので、いくつかの説明はそれほど正確ではないかもしれません。それは私がそれが動作すると思う方法です。

# vim: ts=2 sw=2 sts=2 sr noet st ai si 

を例Dockerfileの場合:私が使用しているファイルの一番下で

+0

最後の行の最後に ""を追加して、中間行を1ステップインデントします。私。 inoremap {{} Skurpi

0

FROM centos-7 
RUN ... 
CMD ... 

# vim: ts=2 sw=2 sts=2 sr noet st ai si 

あなただけのインデントを維持したい場合は、インデントがない# vim: st ai si

関連する問題