分享篇文章:为什么我会使用 Vim ?

2022-08-27 01:36:11 +08:00
 skywind3000

正文请点击:

18952 次点击
所在节点    Vim
195 条回复
pisc
2022-08-30 14:52:02 +08:00
24bit
2022-08-30 15:00:08 +08:00
我 IDE 、Emacs 和 Vim 都用:
- IDE 省心,功能全,在特定语言特定项目这个维度,用 IDE 心智负担会低很多,毕竟别人是靠这个赚钱的,喜欢 Emacs/Vim ,搞个 Keymap 也大差不差
- Emacs 现在我主要就用 Org Mode 和 Magit ,然后还有其他一些临时编辑、文件管理啥的,整体是脱离项目这个单位,面向全局。IDE 打开一个项目还是会占用一定的资源,启动也慢,这时 Emacs 就很舒服
- Vim 就只在终端用了,比如 cd 到某个目录后想简单编辑下某个文件、服务器上需要编辑配置等。所以我需要 Vim 的配置足够小,启动速度足够快。

对于编辑器来说,配置越重,功能越强大,启动也越慢,这个时候和 IDE 比资源占用上也没多少优势了,还不一定有 IDE 好用。

在我看来 Emacs/Vim 的优势首先在设计哲学上,然后才是扩展性。

Emacs 自底向上的设计,所有的功能都可以绑定在一个 key sequence 上,不同的 mode 可以有自己很独特的设计,org mode 在 emacs 中就能自成体系,其他的编辑器中的移植很多时候还是差强人意。

而 Vim 的 Modal Edit 是比 Vim 本身适用范围更广的东西,也许你没用 Vim ,但很多时候也会间接用到 Vim 的部分快捷键或者 Modal Edit 。

而独特的设计意味着就算能在其他编辑器 /IDE 中复刻一部分功能,但也还是没有在原生环境中舒服,这时,在 Emacs/Vim 能满足需求的情况下,我会更愿意用 Emacs 和 Vim 。

而 IDE 就很直接,简单,大而全,扩展性受限,但大部分功能都有了,用就完事。
CodingNaux
2022-08-30 15:24:33 +08:00
爱用啥用啥...
想想我这种菜鸡也只能在这种帖子下回复回复了 = =
maguowei
2022-08-30 15:34:17 +08:00
@james122333 这里我倒是觉得功能不是重点,eclipse 比 idea 系列差的难道是少什么功能么? 功能凑出来不难,但要实现 IDE 我自己感觉还是体验
daveh
2022-08-30 15:37:38 +08:00
@james122333 什么叫“半残”呢?别人给你一把枪,你非要用做大刀去砍,然后还嫌砍得不够锋利。
对你这种,前面也说很清楚了,嫌功能不全,fork 一个自己去改: https://github.com/JetBrains/ideavim
这不比写脚本高大上多了?写得好还可以提 PR ,这开源贡献不比折腾 vim 大多了?
你想给你的枪,装个多锋利大刀都行。
kevinhwang
2022-08-30 16:56:48 +08:00
这个话题过了好几天了,没想到还有热度。
@daveh 别这么极端好不好,作为 idea 和 neovim 用户我想我理解你,但各有优劣。用着商业软件还自带干粮这点我真的没办法理解。除了商业语言例如 jvm 之类的,neovim 大部分都可以胜任(接近于 vscode),因为引入 lsp 之后编辑器只会同质化,目前 neovim + coc.nvim 已经很接近 vscode 。

我是从 2019 年开始认真尝试 neovim+coc.nvim 的,之前在没有 lsp 的情况下尝试过 vim ,觉得很垃圾,连跟 idea 提脚都不配,但 neovim+coc.nvim 让我改观了,当初在写代码方面能有 vscode70%左右体验,后面 nvim 退出 treesitter 和 lua (我真的不喜欢 vimscript ),简直就上头了,写了不少插件。你所说的内嵌语言 injection 目前 treesitter 是可以实现的,写前端还是很舒服。

不要总看到当下 idea 的优点,要是真的完美就不用推出 fleet 这种“消费降级”的产品。个人预言 ide 对于简单语言将会全线溃败,vscode 这种级别的编辑器是为了的首选,应该是前端标配。

安利自己的插件:
https://github.com/kevinhwang91/nvim-hlslens
https://github.com/kevinhwang91/nvim-bqf
https://github.com/kevinhwang91/nvim-ufo
zoharSoul
2022-08-30 17:55:17 +08:00
@kevinhwang #166

neovim 怎么运行 spring boot 和 debug 啊? 求问
就 idea 那种
kevinhwang
2022-08-30 18:25:08 +08:00
@zoharSoul 用 idea 。不要在 neovim 用 jvm 语言。
1. jar
2. *.class
3. jvm 语言喜欢架构和套娃,这点 ide 处理起来还是不错的,编辑器吃力
zoharSoul
2022-08-30 18:32:08 +08:00
@kevinhwang #168 明白了...
因为我看你提到了 idea... 我以为你用的是 java. 所以请教了一下. 毕竟 idea 是 java 专属的嘛.
cnbatch
2022-08-30 18:38:09 +08:00
@360dust 严格来讲不是一回事。vim 是 vi 的增强版。

只不过大多数 Linux 发行版为了省事,直接就自带了 vim 取代 vi ,不用额外再手动安装 vim 。

而在 BSD ,两者仍然分得很清楚,系统默认自带 vi ,想要用 vim 那就自己安装。
kevinhwang
2022-08-30 18:45:52 +08:00
@zoharSoul 感觉目前 jb 的是靠 idea 社区版引流的从而盈利,但社区版其实足够开发 java 。我的策略是白嫖 jb ,没必要在 neovim 浪费时间去针对 jb 的强项。java 的 lsp 太垃圾了,套娃框架学习的时候需要一个断点 debug 追踪,这些不是 print log 能解决的。
zoharSoul
2022-08-30 18:49:01 +08:00
@kevinhwang #171 嗯嗯, 有道理.

我是看楼主信誓旦旦战了好多楼, 所以出于好奇尝试配置了一下....
e7
2022-08-30 18:57:31 +08:00
其它的不说,把 c++用成带 class 的 c 是没毛病的,特性摆在那不用是你的自由,只要能保证代码质量,保证团队其他人也遵守相同的原则
james122333
2022-08-30 19:06:07 +08:00
@maguowei

所以愈来愈多人跳到 idea 但其实功能差不多 搞 vim 更不用说了 肯定会整自己的体验好
james122333
2022-08-30 19:09:59 +08:00
@daveh

功能不全是半残 ide 还功能不全是致命的
如果有兴趣 会 fork 或提 issue 或 pull request
不过没兴趣 写脚本好多了 因为方便 装锋利大刀都可以
vim 本来就是搞个性化配置与个性化功能的 至于配置与功能高不高看人
daveh
2022-08-30 19:29:25 +08:00
@kevinhwang 怎么说好呢?要我说你这理解才是极端。我用商业软件,解决了以前很多开发过程中痛点问题,针对 vim 的场景,介绍了一下 JB 的玩法,码这么多字共享经验,结果却被 vim 社区某些人攻击,我都没说他们极端,到你这怎么就成极端自带干粮了?
你觉得 neovim + coc.nvim 已经很接近 vscode ,但 vscode 离 JB 都还差一大截距离呢。
你在 neovim 能支持内嵌语言挺好,虽然我不知道你支持到了什么程度,但是其他功能呢,比如前面介绍的重构改函数参数,你是怎么改的?
另外我介绍 JB ,也没夸它完美呀,要是以后出来个新的 IDE 比如叫 SB ,比 JB 更好用,我也会来个使用场景比较,推荐大家去用 SB 。
wenbinwu
2022-08-30 19:43:13 +08:00
新手来说,现在的 IDE 功能太多了,特别是 java 这样的语言,直接 IDE ,不要去配置 vim 了,不值得

除非你是 vim 摸爬滚打好多年,团队里也都是 vim 党,语言相对简单,你只需要写简单代码,做简单的跳转,不用大量重构,那可以把 vim 当 ide 使

vim 党下一步就会往全键盘,不碰鼠标党靠,效率是一码事,更多的就是自我追求,没事装个逼
daveh
2022-08-30 19:43:31 +08:00
@james122333 用脚本就别吹了吧,特别是 vim 这种,要不怎么出来个 neovim 。
LostPrayers
2022-08-30 19:48:30 +08:00
我也想试试两只手都在键盘上,不用一会两手,一会一手得去拿鼠标。
但没办法,现在学习 vim 已不太可能,很多操作习惯已经固定了,
换一种操作方式怕是会遇到更多痛点🤣
DOLLOR
2022-08-30 20:12:14 +08:00
前端娱乐圈
后端娱乐圈
编辑器娱乐圈

大家谁也别笑谁哈

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

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

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

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

© 2021 V2EX