为什么都说 vim 好用,简单体验过后并没有惊艳的感觉啊,求解释~

2018-05-22 20:11:56 +08:00
 ZeroW
23990 次点击
所在节点    程序员
149 条回复
reeco
2018-05-22 23:50:56 +08:00
都 2018 年了还那么多人直接上生产服务器修改配置和写代码啊
shiji
2018-05-23 00:08:18 +08:00
他们的惊艳是加载了 N 多 vim 插件的结果。

纯 Vim 就仅仅是一个方便键盘操作的编辑器。
lusheldon
2018-05-23 00:33:00 +08:00
学习曲线比较陡
marcosteam
2018-05-23 00:37:00 +08:00
现在我看开了,VScode 大法好。
那些想把 Vim 变成 IDE 都是耍流氓。Vim 只在服务器上用就行了,无需找虐。
FrankFang128
2018-05-23 00:38:28 +08:00
练半年就有了
twor2
2018-05-23 01:09:23 +08:00
@arthasgxy #29 是的 我反复了好几年之后,才习惯了它的好
diggerdu
2018-05-23 01:11:40 +08:00
一开始是没得选,习惯后就再也离不去
genius2k
2018-05-23 01:11:51 +08:00
因为速度快啊,因为可以各种自定义啊,因为几乎所有电脑都有,装个 vundle 或者 vimplug 就可以保证所有地方都能用了
quinoa42
2018-05-23 03:10:02 +08:00
http://vimdoc.sourceforge.net/htmldoc/motion.html#text-objects
https://github.com/kana/vim-textobj-user
这就是我用 vim 的最大的理由,用 ide 的 vim 插件才让我意识到我有多习惯 ca, da,这样的操作,所以条件允许的情况下都乖乖滚回我自己的 vim 了
lightening
2018-05-23 04:16:30 +08:00
其实楼上说的那些功能别的编辑器也都有,甚至做得更好。反正用了三年 Vim 两年 Emacs 后,我从 2014 年转到 Sublime 就觉得挺满意的。后来 VSCode 稍微体验了下,也觉得不错,不过 Sublime 快捷键都用熟了就懒得换了。



Vim 的优点在我看来只有一个,还值得争议,就是单键快速移动光标。而代价就是成为一个多状态编辑器。这个移动光标么……只要你把 caps lock 映射成 ctrl,大多数编辑器支持的 ctrl + n/p/f/b 也差不多好用。如果实在喜欢这个操作模式,与其在老旧的 Vim 上安装各种插件变成很差的 IDE,不如在各种 IDE、现代编辑器上实现一个 vim 操作模式。

而 Vim 的问题则很多,包括:
- 不支持多线程,导致模仿 Sublime 的 Command-T 的同名 Vim 插件很慢
- 很多操作需要打命令,那就要求你记住命令并完美的打出来了。这方便现代编辑器一般都有个命令列表然后可以模糊匹配。
- Visual block 模式对于对得很整齐的代码操作很好,但是对于排列稍微错开点的东西就不太好用了。主要还是因为没有真正的多重选择。
- 多文件管理始终没有完美的方案。NerdTree 不好用。Command-T 慢。
- 插件用的自己的语言,懂的人太少。相比之下,Sublime 用的是 Python,Atom, VSCode 用的是 JavaScript,都是大家熟悉的。



对于 @wlwood 列出的 Vim 功能,我把我在 Sublime Text 中的实现方法写出来,并不是想抬杠,只是给大家一个直观的对比。注意 Caps Lock 被我改成了 Ctrl:

> ctrl-v 就可多列编辑
无论用鼠标还是键盘,选中多行后,command + shift + L 进入多行编辑模式

> shift+gg,直接末尾,
cmd + down

> :0 直接第一行,甚至:87,光标直接精准 87 行(其他编辑器比较少见到这个功能)
ctrl + g,然后数字

>/xxx 搜索 xxx
cmd + f 交互式搜索,一边打字一边光标开始跳到 match 上。esc 一下后 match 已经选中了,可以直接打字修改。也可以 cmd + d 开始多重选中一样的内容,一起改。

>:s/str1/str2/g , vim 全球替换最爽(emacs 党求别打😂😂)
cmd+option+f 打开替换界面,可以正则。可以一下全替换,也可以一个个交互式的决定要不要修改。

>vim -d file1 file2 即可高亮对比
直接从命令行启动没找到,打开一个文件后可以从 command palette 模糊匹配文件做 diff。

>:split /vsplit
cmd + option + n 分 n 列,1 < n < 3, 加 shift 水平分,不过水平分割很少用。

另外一些心得:
- 对于不常用,记不住快捷键的命令,直接 cmd + shift + p 调出 command palette 模糊匹配找一下就行。
- cmd + x/cmd + c 如果不选中任何东西默认就是剪切 /复制一整行,和 vim 的 dd/yy 差不多。
- cmd+d/b/i/p/s/l/" 分别是选中 word, bracket, indentation, paragraph, scope, line, quote,都是首字母,很好记,除了 word 因为 cmd+w 被 mac OS 占了 :-(
wlwood
2018-05-23 07:04:32 +08:00
@lightening 厉害厉害。能写出好代码的就是好编辑器😂😂😂
xiaket
2018-05-23 07:11:26 +08:00
用不用 vim 真的无所谓, 前提是你的肌肉已经熟悉了一种具有强大功能的编辑器 /IDE 的常用快捷键.

如果你还在用鼠标, 不会用快捷键的阶段, 用哪个编辑器 /IDE 的体验都差不多
sunnogo
2018-05-23 08:21:15 +08:00
哪个 IDE/文本编辑器,用熟了都牛逼。如果你使用哪个图形化 IDE/编辑器,却还没用过它的快捷键,那还是别尝试 vim/emas 这类骨灰工具了
sunnogo
2018-05-23 08:25:00 +08:00
哪个 IDE/文本编辑器,用熟了都牛逼。如果你使用哪个图形化 IDE/编辑器,却还没用过它的快捷键,那还是别尝试 vim/emacs 这类骨灰工具了
pkookp8
2018-05-23 08:33:18 +08:00
@wlwood 我不是杠精

shift+gg,直接末尾
比如 notepad++也有类似功能,ctl+end

:0 直接第一行,甚至:87,光标直接精准 87 行
通常编辑器甚至 ide 都设置了 ctl+g 这个组合,对比冒号就需要 shift+:少了一颗键,不算什么优势

/xxx 搜索 xxx
对比其他需要 ctl+f 的确少一颗键。我可能不太会真正意义的盲打,所以 /经常找不到需要看键盘,反而比 ctl+f 慢
:s/str1/str2/g , vim 全球替换最爽
这个我承认,一般编辑器需要用到鼠标或更多的按键。用 sed 也挺麻烦的


vim -d file1 file2
好吧,diff 功能我都是 win 下 bycmp 完成的,界面化省去了我动脑子的步骤

:split /vsplit
多窗格我的确没用过,不评价了

还有宏,立马录制你想要的功能
这个的确方便,但我也很少有这个需求,可能因为很多编辑器没这个功能我不关注的缘故
Binarization
2018-05-23 08:33:36 +08:00
应为人们都在拿个 vim 装 x 的时候,楼主已经用上了更好的编辑器
BearD01001
2018-05-23 08:41:04 +08:00
@wlwood 感谢,小白又 get√ 到几个新命令(虽然不常用 vim 可能会很快忘掉(逃~)
pheyer
2018-05-23 08:57:13 +08:00
纯 vim 我也用不惯,没有 Ace Jump 配合的 vim 会很不爽的
JetBrains 的 IDE 都带有 IdeaVim 插件,直接在这里面用还可以的,配合 Ace Jump 插件一起使用
coffeSlider
2018-05-23 08:58:10 +08:00
钓鱼执法

在 v2 想看优越狗你只需提到 vim 和 PHP
liujunsheng
2018-05-23 09:00:45 +08:00
这玩意属于鄙视链的最高层

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

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

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

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

© 2021 V2EX