2021 年了,你还在用 Vim 吗(一份 vim 导航快捷键) - V2EX
看到这篇帖子,发下了学习 Vim 的愿望,没想到这么快就行动了
学习 Vim 的曲线真的很陡峭 !
如果有一款插件就好了
当进行某个比较愚蠢的操作时,能够直接给出更短的 Vim 操作
这样的话学习速度必然会提升很多
对于我这个新手来说,明明还知道有更好的操作
但就是没办法用,因为需要翻阅资料就打断现在的思路了,真的有时候挺纠结的
看文章上说要完全适应的话,大约也要两周[^1]
在适应阶段,操作效率比用普通的方式往往是更低的
而且有很强的割裂感
当然这个工具听起来就不是那么好实现,我不确定是否真的存在,去网上搜过,没有找到什么线索,所以发在 V2EX 问问.
1
zeroDev 2021-01-30 12:37:23 +08:00 via Android 1
coc.nvim
|
2
AndyAO OP 不知道有人是否感兴趣
如果有那么一款插件的话,我觉得名字可以叫**Vim 教练**. |
3
zeroDev 2021-01-30 12:38:59 +08:00 via Android 1
补全这种东西是一种叫做语言服务器标准的东西实现的,是单独的一种软件,跨平台跨工具的
|
4
AndyAO OP 当然我这里说的 Vim
不局限于 Vim 编辑器本身 指的一切主流编辑器平台上的 Vim 模式 例如 Visual Studio Code/Visual Studio/JetBrains 等 |
5
zeroDev 2021-01-30 12:39:46 +08:00 via Android
哦,看错了
你可以看看 一个安卓 APP Vim Master |
6
AndyAO OP |
7
AndyAO OP |
8
superrichman 2021-01-30 12:54:06 +08:00 via iPhone
没啥好纠结的 用自己习惯的操作就是最好的
|
9
AndyAO OP @zeroDev #5
问个问题 如何在 Vim 中复制粘贴文本? 当然我知道具体用什么命令!我只是不知道该如何'思考'这个问题. ![]( https://cdn.jsdelivr.net/gh/Andy-AO/GitHubPictureBed/img/20210130133752.png) 目前我的想法是用`y<number>w`,但是我好像要先数一下 number,那这个速度有点慢了. 首先用 w 数了,才发现是 9 个,因为有各种符号和单词,所以我好像不太会数. 熟练的人是能看一眼就能数出来吗? 如果是这样的话,我想应该多练习练习数 number. 还是说有更好的操作方法? |
10
xujiahui 2021-01-30 13:54:15 +08:00
最近刚好在看«Vim 实用技巧» 边看边用 还挺舒服的
|
13
Leviathann 2021-01-30 14:10:40 +08:00 via iPhone 1
@AndyAO
如果复制终点的字符比较特殊,那直接 yt 或者 yf 接终点字符 比如 abcdefc 光标在 a 那 yte 就是复制 a 到 d,yfe 就是 a 到 e ytc 就是 a 到 c,y2tc 就是复制到第二个 c 另外还有快速查找跳转的插件比如 easymotion y 后面接跳转操作就是从当前复制到哪个字符 |
14
AndyAO OP |
15
AndyAO OP @Leviathann #12
你这个思路和 ya`的思路可以互相补充 他这个的好处就是只要在包裹体的内部就行 你这个普适性更强一些 查了一下,在我看的那本书里面第 48 页才开始讲这个内容 看来我还要学习很长一段时间 |
16
Numbcoder 2021-01-30 15:13:53 +08:00
Vim / Emacs 的入门门槛在于没有一个开箱即用的环境,需要自己一点一点去找插件,配置成自己舒服的使用方式,所以我是强烈不建议完全复制别人配置或者寻找一个所谓唯一最佳的操作方式,很多东西都是在慢慢使用中找到最适合自己的,所以没必要强制去训练,几年以后会形成一套属于自己的配置,成为你的终生财富
|
17
Leviathann 2021-01-30 19:16:12 +08:00 via iPhone
|
18
IgniteWhite 2021-01-30 21:14:13 +08:00 via iPhone
@Numbcoder 同感,这是个很私人的东西,需要在使用中查找参考别人的方案,然后积累到自己最顺手的设置里。我从本科第一次学习 Vim,5 年之后才有了自己的感触配了适合自己的 vimrc
https://github.com/g6ai/dotfiles 还在不断改进中,欢迎交流 |
19
DrakeXiang 2021-01-30 22:52:02 +08:00
我感觉这种东西不可能出现,一个是制作难度的问题,要识别你的意图不容易,新手可能需要三步才能达到自己的目的,高手用一步就可以,但是 vim 怎么识别你的目的是在哪一步达到?
另一个是 vim 有很多命令,但是常用的就这么多,之前见过一个网站,给定一段文本和目标,然后用 vim 来实现,最后以字符长度从短到长排序,里面就能看到很多不认识的命令和 hack,学习这种骚操作并不一定能提高效率,因为有些实现用常用命令更简单,高级操作虽然字符数少了,但是心智负担更大,要么是要学,要么是要记,要么是要算,当然有些也确实能学到更简便的方法。 我的建议是先熟悉常用的命令,然后针对自己经常碰到的需求自己做命令组合的优化或者直接上网搜,能用英文搜就更好,中文我很怀疑有没有搜索结果,如果实在找不到也可以发贴问或者加 vim 的群问,然后可以看一看一些 vim 布道师的演讲啥的,里面针对的一般都是不了解 vim 或者 vim 新手,场景比较常见。总之要想用得很溜需要一个积累的过程。 举个例子:快速移动到对应的行 之前很长时间我是用 j 、k 来移动,但是这样发现在大范围的移动比较笨也慢,后来配合“相对行号” 使用 数字 + j 、k 来实现快了很多,但是在一屏中间大范围移动时有时候觉得行号多了还是有点麻烦,就再配合 shift + h/m/b 移动到屏幕大概的位置,缩短了相对举例之后然后再进行小范围移动就舒服一点 |
20
DrakeXiang 2021-01-30 22:53:29 +08:00
@DrakeXiang 写错了。。shift + H/M/L
|
21
AndyAO OP @DrakeXiang #17
"新手可能需要三步才能达到自己的目的,高手用一步就可以,但是 vim 怎么识别你的目的是在哪一步达到" 这个不是靠 Vim 来识别的,Vim 本身没有这么强大的功能,这是叫做**Vim 教练**的工具实现的. 实现这个工具,在现在这个年代,不是什么很难的问题. 用传统的算法实现不了是有可能的,至少实现的路径不是一眼能够看出来的. 但考虑到有机器学习这种东西,这个事情就显得小儿科了. 更短的操作不一定会提高效率,这个的确如此,但类似 Vim 操作这样的东西,去网上搜索的效率并不高,而且常常有遗漏.如果有软件能够尽可能的给出比较短的操作,然后供人挑选的话,那是非常好的.而且哪些容易通过练习形成肌肉记忆,这个也是可以排序的.也可以根据这个维度给出建议. 比自己去网上找要方便的多,由于寻找的过程是系统化的,所以效率高,令人感到非常放心. 把复杂的事情变简单和自动化,是所有程序员的应做的工作,也是令人兴奋和激动的,尤其是工作比较难,比较出人意料的情况下.我现在的能力没有办法实现,但是我已经记在本本上了,也许有一天你就会看到我发布这个软件的消息. 你的那个建议就是我现在正在做的事情. 遇到不懂的,在网上搜了没有满意的答案,我在群里和 V2 都问了. 过了好长一段时间,我找到了自己想要的东西,这个当然比纯自己琢磨要好些. |
22
weixiangzhe 2021-01-31 08:51:05 +08:00 via Android
先在 ide 或编辑器里装插件玩吧,vim 配置啥的太花时间了
|