我在终端上使用vim作为C ++ IDE,我在autoclose花括号中遇到了一些问题。我正在使用vim-autoclose插件。
我的问题是,当我创建新函数并打开大括号时,光标不会返回函数内部(在大括号内),但它会在函数末尾返回。有没有办法解决这个问题?
另外,当我创建一个新类时,有没有办法自动将分号放在该类的右大括号中?
答案 0 :(得分:2)
我见过的大多数autoclose插件都没有在;
上提供class and struct
追加部分。因此,我没有使用插件进行自动关闭并添加,~/.vimrc
inoremap {;<CR> {<CR>};<ESC>O
输入class Test
后,键入{;
和 Enter 将呈现
class Test {
_ //cursor here
};
当然,indentation
需要从您的结尾启用,例如ai
或cindent
这是一些更多的映射,可能与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映射会在与class
,enum
或struct
位于同一行时触发键时插入分号。我没有时间去做更高级的事情。
在所有情况下,光标都会返回到大括号对之间。如果您需要换行符,则必须点击<CR>
。