在键入开头后插入右括号非常容易:
inoremap { {<CR>}<Esc>ko
这样
if (true) {
转换为
if (true) {
|
}
但是我想节省时间并少输入1个字符:
if (true)<CR>
所以我想创建以下规则:如果按下return并且行以if / for / while开头,则执行{<CR>}<Esc>ko
这可行吗?
由于
答案 0 :(得分:4)
在您之前的映射的基础上,这应该做你想要的:
inoremap )<CR> ) {<CR>}<Esc>ko
但是,您应该尝试使用SnipMate或Ultisnips等片段扩展插件。这两个插件都允许您定义具有占位符和镜像的片段(默认情况下包含许多片段),这些片段在触发后按下<Tab>
时会展开。
例如,您有一个与触发器if
关联的代码段扩展为:
if ([condition]) {
}
选择了 condition
,您可以输入,完成后,您可以再次点击<Tab>
以在花括号之间跳转光标,准备输入:
if (myVar == 5) {
|
}
这非常方便。