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 模式,输入之后的内容。

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

7914 次点击
所在节点    程序员
52 条回复
Jirajine
2019-10-12 05:54:12 +08:00
一般文本编辑器自动补全关闭括号的时候还有一个操作:
当你手动输入右括号时会自动将光标移到括号外面。

不知道你 vim 怎么配置的,我一般在其他编辑器中使用 vim 输入模式,在 insert 下与一般编辑器无异。
reus
2019-10-12 05:54:57 +08:00
A 可以少一次移动

或者直接输入 )
binux
2019-10-12 06:07:38 +08:00
不用自动补全
binux
2019-10-12 06:10:43 +08:00
@binux #3 讲真我是用 60% 键盘的 fn+' 移动光标的
rykka
2019-10-12 06:19:13 +08:00
esc+A
weixiangzhe
2019-10-12 06:48:09 +08:00
单行用 ctrl b f 移动
jessun1990
2019-10-12 07:13:44 +08:00
我的方法是,先输入 if (), 再退到命令模式,h 移动到括号处,插入模式,输入 a == b,退到命令模式,再 A 到行尾巴继续操作。
看上有些复杂了。形成这样习惯的原因是,有时候输入 if ( 时候,右括号没有自动补齐,而整个文件的 syntax highlight 这时出现错误,Ale 插件也会报错。
我是把我的 linux 和 mac 下的 capslock 按键替换成 esc 键,使用小拇指来控制模式切换。对我来说,较大幅度降低了 esc 模式切换的时间成本。
yiningyang1228
2019-10-12 07:16:00 +08:00
@Jirajine 我之前也是这样配置的,但是感觉有些麻烦😂
yiningyang1228
2019-10-12 07:16:10 +08:00
@reus 学到了,感谢!
yiningyang1228
2019-10-12 07:17:48 +08:00
@jessun1990 感谢您的回复!我是把 Capslock 和 left-control 换了,这样的话按和 Control 的快捷键方便一些。
yiningyang1228
2019-10-12 07:19:39 +08:00
@weixiangzhe 嗯嗯,我之前也是 imap 的方向键映射成了 ctrl b f n p,但是后来感觉这么做还得配置😂有点麻烦。要不我再去弄回来吧,感谢回复!
DiamondbacK
2019-10-12 07:44:57 +08:00
你一定是用了自动补全括号的插件,而这个插件又没有同时考虑到这个问题。
我一直是用的自己写的括号补全,而在打闭括号时,如果右方是相同的闭括号,则自动变成移出。
gayhub: Ace-Who/vim-AutoPair
DiamondbacK
2019-10-12 07:51:06 +08:00
另外,insert mode 下将 jk 映射为 Esc。
hanxiV2EX
2019-10-12 07:55:26 +08:00
w 我按的最多
pkookp8
2019-10-12 07:56:07 +08:00
不用括号补全😂
jessun1990
2019-10-12 07:56:59 +08:00
@yiningyang1228 请教一下,我的使用感受是:ctrl 按键使用频率较低。请问兄台把 ctrl 放在 capslock 的原因是??
xml123
2019-10-12 08:01:10 +08:00
你可以用方向键啊
IsaacYoung
2019-10-12 08:10:23 +08:00
shift + a 在本行最后插入
shift + i 在本行开头插入
xiulu
2019-10-12 08:13:35 +08:00
@xml123 用了 vim 后,就忘记了什么是方向键。即使方向键只要一次操作,而且命令需要两次操作( ESC,和 A )。但还是会选择后者,因为总感觉伸手到右下角找方向键有种奇怪的感觉,会打断那种流畅感。
最起码在我看来,是这样的。
Sainnhepark
2019-10-12 08:16:00 +08:00
我记得是 auto pairs 有这样一个功能,当插入模式下位于括号内的时候,再按一次右括号就可以跳转到右括号的位置

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

https://www.v2ex.com/t/608443

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

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

© 2021 V2EX