自动关闭插件使用大括号

时间:2016-02-07 01:21:38

标签: vim

我在终端上使用vim作为C ++ IDE,我在autoclose花括号中遇到了一些问题。我正在使用vim-autoclose插件。

我的问题是,当我创建新函数并打开大括号时,光标不会返回函数内部(在大括号内),但它会在函数末尾返回。有没有办法解决这个问题?

另外,当我创建一个新类时,有没有办法自动将分号放在该类的右大括号中?

2 个答案:

答案 0 :(得分:2)

我见过的大多数autoclose插件都没有在;上提供class and struct追加部分。因此,我没有使用插件进行自动关闭并添加,~/.vimrc

inoremap {;<CR> {<CR>};<ESC>O 

输入class Test后,键入{; Enter 将呈现

class Test {
    _ //cursor here
};

当然,indentation需要从您的结尾启用,例如aicindent

这是一些更多的映射,可能与vim-autoclose无关,在普通的vim上工作正常。

inoremap " ""<left>
inoremap ' ''<left>
inoremap ( ()<left>
inoremap [ []<left>
inoremap { {}<left>
inoremap {<CR> {<CR>}<ESC>O
inoremap {;<CR> {<CR>};<ESC>O

最后一行给出了

if (true) {
    _  //cursor
}

无论何时,您都不想要映射,我们需要在输入mapped char之前使用 Ctrl - v 将其转义

希望这有帮助

答案 1 :(得分:0)

{上的

lh-cpp映射会在与classenumstruct位于同一行时触发键时插入分号。我没有时间去做更高级的事情。

在所有情况下,光标都会返回到大括号对之间。如果您需要换行符,则必须点击<CR>