2011-01-22 38 views
11

例如,如果我在vim編碼jQuery的,我有這個在插入模式(「|」是當前光標位置):vim中自動換行符和縮進時的內置大括號?

$('#something').click(function(){|}) 

...我敲回車,我想得到這個:

$('#something').click(function(){ 
    | 
}) 

...而現在,我得到這個:

$('#something').click(function(){ 
|}) 

同樣的事情發生在PHP函數的定義。有沒有辦法自動插入額外的新行,並縮進光標位置時,進入這樣的大括號內?

(道歉,如果這已經被問過 - 這似乎是一個共同的要求,但我搜索了一段時間,但沒有找到它。)

回答

3

最後我只是硬編碼到的.vimrc這一點,如下

" Make it so that a curly brace automatically inserts an indented line 
inoremap {<CR> {<CR>}<Esc>O<BS><Tab> 

這似乎像<BS><Tab>部分是沒有必要的,但由於某種原因它沒有像O命令正確通常縮進確實,所以我必須添加它。

1

我用javascript.vim這(幾乎)你想要做什麼的JavaScript代碼。

還有一個php.vim,但我沒有測試它。

+0

嗯,我已經使用javascript.vim沒有成功。你需要做額外的事情才能讓額外的換行符工作嗎? – 2011-01-22 13:41:25

0

我的版本很相似,但使用<C-o>而不是<Esc>,因爲它會觸發JavaScriptLint.vim的驗證。

而且,我真的不希望每一個{}是在多行,所以它映射到CTRL +

inoremap <C-Return> <CR><CR><C-o>k<Tab> 
相關問題