2011-01-22 61 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>