Vim自动缩进换行

我如何让vim将光标置于大括号内,即以|开头 表示光标位置:

class {
  |
}

现在用我的设置它只能做到这一点

class {
|}

我在.vimrc文件中得到了这个set autoindent shiftwidth = 2 tabstop = 2 noexpandtab

基本上我只想要一个普通的IDE如何缩进它。

更新:

我发现如何用inoremap { {<CR>}<Esc>O做到这一点


把它放在你的.vimrc中:

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

假设autoindentsmartindent设置正确,在大括号之间键入Ctrl + Return将把光标放在你想要的位置。


我发现,delimitMate不正是你描述更多(即自动插入结束} )。 请注意,您必须通过将let delimitMate_expand_cr=1添加到您的配置来告诉delimitMate扩展回车。

从我的观察,这正是在TextMate和SublimeText中发现的行为。


我有Ubuntu 12.04,并且在主目录中找不到vimrc文件。 全局vimrc文件位于/etc/vim/vimrc
这个文件几乎没有。 所以对我来说,它将这3行添加到/etc/vim/vimrc的末尾

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

当你输入{下一次它将被组合{ ,Enter, } ,up,end,Enter改变。 cindentautoindent将添加所需数量的Tab。
PS我不擅长调整vim,所以一些解释可能不太准确。 这是我认为它的工作原理。

链接地址: http://www.djcxy.com/p/8719.html

上一篇: Vim Auto Indent with newline

下一篇: How to paste yanked text into Vim command line?