内部支撑时vim中自动换行和压痕?

时间:2011-01-22 13:31:26

标签: javascript vim indentation

例如,如果我在vim中编写jQuery,我在插入模式下有这个(“|”是当前光标位置):

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

...我点击了输入,我想得到这个:

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

...目前,我得到了这个:

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

PHP中的函数定义也是如此。有没有办法自动插入额外的新行并在点击输入内部大括号时缩进光标位置?

(如果之前有人问过道歉 - 这似乎是一个常见的请求,但我搜索了一段时间但找不到它。)

4 个答案:

答案 0 :(得分:4)

我最终只是将其硬编码到.vimrc中,如下所示

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

似乎<BS><Tab>部分不是必需的,但由于某种原因,它没有像O命令通常那样正确缩进,所以我不得不添加它。

答案 1 :(得分:1)

我使用javascript.vim(几乎)执行您想要的JavaScript代码。

还有一个php.vim,但我没有测试它。

答案 2 :(得分:0)

我的版本类似,但使用<C-o>代替<Esc>,因为它会触发JavaScriptLint.vim的验证。

另外,我真的不希望每个{}都在多行上,所以它映射到 ctrl +

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

答案 3 :(得分:0)

只需安装auto-pairs plugin并感到高兴。