从Vim到VSCode
我和Vim的故事还是挺长的,之前的一些博客:
参加工作后,腾讯需要一个英文id,我当时就取了个vimerzhao(现在看来有点中二,而且事后看,这个名字不太好发音,大家初次见面都不太知道如何称呼)。
然后就是我的域名,也是 vimerzhao.top.
之前主要做Android开发,其实主力工具还是AS,一些零碎脚本用Vim。后面开始C++相关的工作后,探索了不同的工具,但用的比较顺手的还是NeoVim。
- coc.nvim / nvim-treesitter : 代码索引、提示、跳转
- LeaderF : 文件查找
- 其他一些乱七八糟的小插件美化下
主要好处是:
- 核心功能(索引跳转、文件跳转、代码提示)够用
- 编辑流畅,轻量不卡
- 服务器也能用(虽是客户端,但也经常要用服务器….)
但编译和调试还是依赖IDE(AndroidStudio/XCode/命令行)
后来遇到一些问题,有的解决了:
有的由于作者也是业务维护,不是能很好解决:
- Leaderf相关的命令突然没有反应了(通过iTerm + ssh 在Linux Server使用) · Issue #1021 · Yggdroot/LeaderF
- 最新的Master在Mac下无法使用 · Issue #1027 · Yggdroot/LeaderF
最近,在折腾过程中,终于把VSCode如何索引C++代码(之前试了几次官方能力,每次都卡死)解决了,那么VSCode和Neovim对于我来说,在编辑体验上基本没区别了。
从长远看,后面会逐渐用VSCode解决大部分开发场景,Neovim将逐步轻量化(例如从命令行进入脚本编辑、修改Server配置等),主要出于以下原因:
- 虽然我一直在追求好用的工具,但并非有信仰情结(Vim VS Emacs?),所以同时也要看“性价比”。VSCode的生态明显是更好的,插件本身的质量经过了更多的检验,遇到问题也更容易解决。
- VSCode的生态好,各种扩展功能也更加丰富,比如AndroidStudio的Git Annotation就能用GitLen(File Blame)实现,Vim应该是做不到了…
- 像调试这样的功能集成进来,还是非常有必要的,大部分调试用GUI+鼠标其实效率更高
- 一些新的场景、框架(如Flutter)一般都会支持VSCode,Vim还要自己造
总的来说,Vim本身的思想会永存,但Vim这个软件在技术日复一日的更迭中,大概率是要被新陈代谢掉的。
Git导致的VSCode占用系统CPU内存过高