我是 Vim 绑定的新手,我想开始在 Sublime 中使用它们,但是遇到了一些障碍。
当我输入各种封闭的标记(例如“字符串文字”或{代码块}或(括号))时,我养成了输入开始和结束字符、点击返回并填写所需字符的(好?)习惯。我这样做是为了永远不会忘记结束字符。
例如,为了输入“literal”,我会输入“”,然后将光标向后移动 1 个空格,然后在引号内写入单词 literal,然后将光标向前移动 1 个空格继续输入。
使用 Vim 绑定时,每次我向后移动一个空格然后向前移动一个空格时,似乎都必须退出插入模式。Sublime 有一些设置,每当您键入 ( 时都会自动键入 () 然后将光标放在中间,所以我想这消除了第一次移动的需要,但在键入我所附的语句后将光标向前移动的问题仍然存在。
Vim 用户一定对此有很好的解决方法,否则他们现在肯定都疯了。你们只是先输入开头和结尾的字符就放弃了吗?想要退出插入模式、向前/向后移动 1 的奇特键绑定,然后返回插入模式(我希望只需按一次键即可完成)??
如果我做错了,请告诉我,如果您有更好的标题建议。不确定如何描述这个问题。
答案1
在 Sublime 中,您可以编辑映射以执行类似“ shift+ space”的操作,将光标向前移动一个空格,使用以下代码,如下所示:https://stackoverflow.com/questions/14800608/sublime-text-2-move-cursor-out-of-parenthesis-quotes-or-brackets
{ "keys": ["shift+space"], "command": "move", "args": {"by": "characters", "forward": true} }
对我来说非常有效。
编辑:这将使ctrl++向后shift移动space一个空格。
{"keys": ["ctrl+shift+space"], "command": "move", "args": {"by": "characters", "forward": false} }
两者的结合使生活变得更加轻松:)
答案2
Vim 有许多智能的“自动关闭”插件,而且您可以轻松提出自己的简单映射,例如inoremap () ()<Left>
。
但是,无论是在 Vim 还是在 Sublime 中,你都可以简单地输入()
并点击<Left>
。这当然不像退出插入模式只是为了返回一个字符那么尴尬。