这似乎有点过分,但我切换到 vim 并且我现在对工作流程感到非常满意。我试着约束自己不要使用箭头键,因为在写作时一直把手放在 alfa 键上是一件很重要的事情。因此,当我需要导航时,我会退出插入模式,进入正常模式并返回插入模式。
有一个例外,这实际上更具破坏性:我使用clang complete
片段,super tab
这很棒。除了每次我在填写参数后自动完成一个功能时,我之前都会留下光标,)
所以要继续,我必须将光标向右移动一个字符。可以想象,这种情况经常发生。
我唯一的选择(据我所知)是 :Escla或?,我对它们都不满意。第一个让我只需简单的 1 个字符光标移动就可以按 3 个键,第二个让我将手移动到箭头键。第三种选择是映射CTRL-L或 smth 到?.
那么这样做的最佳方法是什么?
//snippets (clang complete + supertab):
foo($`param1`, $`param2`)
//after completion:
foo(var1, var2|)
^ ^
| |
I am here |
Need to be here
Run Code Online (Sandbox Code Playgroud)
|
表示光标位置
如果它是)右)
括号,则映射跳过现有的
inoremap <expr> ) strpart(getline('.'), col('.')-1, 1) == ")" ? "\<Right>" : ")"
Run Code Online (Sandbox Code Playgroud)
取自:http : //vim.wikia.com/wiki/Automatically_append_closure_characters
旧答案
:h i_CTRL-O
执行一个命令,返回插入模式。
Ctrl-ol 将您向右移动一个字符,然后返回到插入模式。
或者,一些括号插件允许您只输入结束括号),它们将覆盖现有的。