Vim 如何在 insert 状态下高效移动光标到括号外

2019-10-12 05:43:01 +08:00
 yiningyang1228

使用 Vim 之后感觉是非常爽,但是有个地方一只觉得挺麻烦,就是在打括号的时候,如果需要跳到括号外,需要很复杂的操作。

举例说明:

if (a == b) return c;

当输入 if 语句时,我是先打 if, 再打左括号(,这时候自动补全出右括号,光标自动出现在括号中间。再输入括号内的内容a==b, 这时候需要从右括号中跳出。 我现在的操作是:Cmd+[ 回到命令模式,l光标向右移一次, a到括号外,并进入 insert 模式,输入之后的内容。

但是感觉这么做贼麻烦,请问各位有什么比较简单的做法么?谢谢大家!

8685 次点击
所在节点    程序员
52 条回复
laumm1314
2019-10-12 10:06:19 +08:00
我用这个插件很方便 Plug 'jiangmiao/auto-pairs'
wuhuaji
2019-10-12 10:20:44 +08:00
这个情况我也考虑过。和上面很多朋友类似,都是先切换回普通模式,然后再跳转到需要编辑的地方插入。

这里通常是需要跳转到行末,所以 ESC(或者其他自定义普通模式键) + A 即可。

然而这个按键组合还是有点麻烦,我是自定义了一个:
imap aa <ESC>A

编辑模式下,直接 aa 就可跳到行末去编辑。
yiningyang1228
2019-10-12 10:21:09 +08:00
@DiamondbacK 我其实是在 Intellij 里面用了 Vim 插件,所以遇到了这个问题😂,好像没有自动移出的功能。
kindjeff
2019-10-12 10:21:20 +08:00
想了半天为什么我没遇到过,最后发现我是用上下左右
yiningyang1228
2019-10-12 10:22:46 +08:00
@jessun1990 因为 mac 系统自带的全局快捷键一般都是和 Ctrl 绑定的,比如往左是 ctrl+b,往右是 ctrl+f, 到行首是 ctrl+a, 当行末是 ctrl+e, 往上是 ctrl+p,往下是 ctrl+n,等等,所以把大小写改成了 ctrl 这样子方便很多。
yiningyang1228
2019-10-12 10:23:19 +08:00
@xiulu 对对对我也觉得,收放在主键盘区就很舒服
yiningyang1228
2019-10-12 10:25:20 +08:00
@wuhuaji 这个做法有点赞👍
MaxTan
2019-10-12 10:52:42 +08:00
切回 Normal 模式然后 A 就直接插入到行尾了

esc 绑定到 Caps Lock 上,习惯性小拇指狂按 Caps Lock,非编辑状态下一直保持 Normal 模式,Normal 模式下用 jkeb 再配合 aAoOiI 快速定位插入内容

vim 用好的窍门就是狂按 Caps Lock,也就是狂切 Normal 模式, 有事没事都抽风狂按那种,啥时候能练出帕金森的小拇指就差不多了
yiningyang1228
2019-10-12 11:41:56 +08:00
@MaxTan 哈哈哈太真实了
Xbluer
2019-10-12 17:32:55 +08:00
我一直是这样的
imap (d ()<Esc>i
插入模式下输入 (d 自动不齐括号,并且光标也在中间。
james122333
2019-10-12 20:57:47 +08:00
imap 加上判断是否在括号内阿
zuorn
2020-10-12 06:40:12 +08:00
我绑定了 option + hjkl 为方向键,所以按下 option + l 就好了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/608443

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX