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>
假设autoindent
和smartindent
设置正确,在大括号之间键入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改变。 cindent
和autoindent
将添加所需数量的Tab。
PS我不擅长调整vim,所以一些解释可能不太准确。 这是我认为它的工作原理。