如何提升 Vim 技巧?

2021-01-19 10:11:13 +08:00
 FaiChou

自己已经不做互联网行业了, 但平时业余也写点脚本, 用 VSCode 感觉太重, 所以选择 Vim.

因为知道 Vim 有很多奇技淫巧, 但平时使用还是习惯那几个快捷键. 比如想删除一行再进行编辑, 之前习惯 dd 再 insert, 其实有更简便的 S; 再比如 a = "xyz" 想更换双引号为单引号, 使用 r 来一个一个替代, 其实有更简便的: 光标在 xyz 中, cs"'(change surrounding " to ').

尽管不知道这几个奇技淫巧也不耽误开发, 但学习了它会提升一定的效率. 自己闭门练习不会提升, 只会让效率低的快捷键成为码代码的习惯. 看他人使用 Vim 码代码会学习他人的 Vim 快捷键习惯. 除此之外 还有什么好的方法来学习这些奇技淫巧?

6862 次点击
所在节点    程序员
61 条回复
zhuangzhuang1988
2021-01-19 17:54:58 +08:00
放弃
zeroDev
2021-01-19 17:57:29 +08:00
用这个软件刷题: Vim Master
iSecret
2021-01-19 17:57:32 +08:00
说一个大佬之前教我的一个命令,用得比较多,比如 a = "bcdef" 需要删除 "" 中的内容,命令是 di",同理还有 ' ( [ { 等等。
moyupoi
2021-01-19 17:57:36 +08:00
《穿越到异世界居然能用 vim 修改能力值》
jswh
2021-01-19 18:10:06 +08:00
用 vim 除了快捷键,主要还有宏录制
blessingsi
2021-01-19 18:11:27 +08:00
感觉日常使用是不够的,因为会自动用自己最熟悉的方式。需要看书,然后跟着练一练。这样下次用的时候才能想起来。
NeezerGu
2021-01-19 18:28:15 +08:00
@moyupoi 尼玛。。。我还以为真有这么个游戏
NeezerGu
2021-01-19 18:30:31 +08:00
放弃吧,我试过,最后发现就算看了也经常记不住。
我已经算是比较频繁使用 vim 的人了。。。

总归还是要需求驱动。就是当你使用个几个月甚至更久,突然感觉最近有个 xx 行为,感觉比较低效,但又应该可以用更快捷的办法来取代,这时候再去对这个行为进行搜索会更加有效一些。

比如你说的 ddi 和 S 。 开玩笑说如果你 ddi 按的比 S 还快,你干嘛还要切换?
zengming00
2021-01-19 19:30:08 +08:00
有些时候 vim 的宏用得相当爽
FaiChou
2021-01-19 22:48:44 +08:00
@NeezerGu 学习不就是这样的吗,比如 OC 里写代理模式比较快,但后来学习了 block 更便捷,所以要学习。虽然 S 可能最后真比三个键要慢,但就像 react hooks 那位老哥讲的: 老了,不喜欢敲那么多键(他在解释为什么用 let 而不是 const )
bxqqq
2021-01-19 23:11:36 +08:00
因为大部分人连 vimtutor 都没有过一遍,七零八碎不如直接看文档。
R0ckyY2
2021-01-19 23:39:00 +08:00
多用 + 遇到问题找 Google
AnnatarHe
2021-01-19 23:45:57 +08:00
经常看用 vim 的人写代码打字,可以的话找线下同事,不行只能找线上视频,youtube 有挺多.

贡献一个 vim 技巧: early 10h 恢复到 10h 前的状态,常用来撤销操作
namelosw
2021-01-20 00:16:03 +08:00
我不用 S,我用 cc,感觉表达起来比较流畅,因为 c 的组合更多。感觉重要的不是奇技淫巧,而是能用按键组合流畅地表达,就跟描述需求一样,而不是机械地地挪动光标插入删除,这样手脑一致不会互相卡,专注的时候就会忘记自己在打字。

很多东西能想到明确规则但不知道怎么按,比如给 text 外面加层 span tag,就会卡住一下,打断这种节奏。至于是 S 还是 cc 其实是完全无所谓的。

不过看你已经比较熟悉 Vim 了,感觉其实比较适合找一些 casts 看,很多时候都是无意看别人用的时候才意识到还能这么用。好像有个 Vimcasts,不过我没看过,感兴趣可以试试。
catcn
2021-01-20 00:19:09 +08:00
VS 和 VS Code 都开启 VIM 模式,字体放得大大的。
别人想过来我电脑敲代码,就像是开自动挡的老司机碰到了手动挡。
马上不敢抢键盘了。
booscopy
2021-01-20 00:24:36 +08:00
jupiter157
2021-01-20 05:45:12 +08:00
inoremap jk <esc>
用 jk 替换 esc,从此再也不需要按 esc 了
byzf
2021-01-20 07:27:26 +08:00
题外话,vim 说实话我现在很难去定义到底有没有带来什么实质上的便利,有很多人发表过高见说看不出来鼠标多点一下到底有什么损失。

陆陆续续地从 syntastic 到 ycm,nvim,deoplete 帮他们测各种 bug,各个平台测 vim 的花式 gui 的 bug,体验各种轮子自带的 bug 以及任何新环境都想试试 vim 是个什么情况所花的时间,还有迁移到 vscode-vim,vs-vim, jetbrains-vim 里面各种配置和 bug 的时间,加起来至少有大几百小时,我很难说我省下来一点点效率能覆盖这些时间。

这种学了之后不会更新的技巧其实没什么去快速学习的必要,每年偶尔看一遍有啥新功能有啥新插件就差不多了。
micolore
2021-01-20 08:20:13 +08:00
不用很难记住那么的快捷键,我也配置了很多插件,经常 idea 启动,然后就记不起来原来的配置了。
eve1yb0dy
2021-01-20 09:55:12 +08:00
大 S 学习了

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

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

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

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

© 2021 V2EX