使用 VIM 开发 JS/TS
起初,有编辑器。VIM 就是一个编辑器。VIM 就是编辑器。
我三年前开始写代码。刚开始写代码的时候,我记得有个同事还在用 Emacs。他只是盯着屏幕,不用鼠标,只是用键盘来做他想做的事情。他试图说服我也用 Emacs,但用起来感觉不太好。
然后,我开始使用 VSCode。VSCode 很棒,我没什么可说的。VSCode 是一款优秀的编辑器。唯一让我感到压力的是它疯狂的内存占用!毕竟,它是基于 Chromium 内核构建的,所以会根据内存需求进行调整。VSCode 几乎可以满足你所有的需求。你想写 Java 代码?它有一个插件。你想测试 API?它有一个插件。你想管理数据库?它有一个插件。它不是一个 IDE,因为他们没有给它起名字!
即使这个丰富的生态系统本身就很美好,也可能导致一些问题。随着你安装更多扩展程序,内存占用可能会变得非常高。而且,根据工作区(你必须手动配置)而不是文件类型禁用它们让我更加头疼。
有一次,我在一个使用大量 Docker 容器的项目中工作,它们本身就占用了大量的内存,而且我还在使用 VSCode。内存的“蛋糕”开始快用完了。此外,我的 Chrome 和其他一些工作应用程序(比如 Slack,它也是基于 Chromium 开发的)也想分一杯羹……我的电脑不太适应这种情况,崩溃了。这种情况持续了一个月。我试过换浏览器,试过在手机上使用 Slack,试过一些黑魔法来充分利用我的电脑,甚至试过下载更多内存(我真心希望这个方法能管用……:( )。但什么也没发生。
然后,我恍然大悟。
我上过一门课,其中一位老师用的是 VIM,但它就像一个 IDE。它完美无瑕。他在选项卡(缓冲区)之间切换非常迅速,命令也直观易懂。配色方案很棒,速度也令人印象深刻。它有自动完成和列表功能……一切都很完美。
它和视频里不一样。为什么?我没有自动完成功能,也没有状态栏和文件资源管理器……它只是一个空控制台。就像 Emacs 那样。而且我也没法退出它。
我意识到 Vim 并非开箱即用。你必须先熟悉它才能用它写代码。所以我花了几天时间阅读 Vim 的教程和内容。我查找了一些在线资源,找到了以下这些:
完成其中 2 个(显然是前 2 个……)后,我准备开始使用 VIM。
捷径
这是我在使用 VIM 之前学到的一些基本快捷键列表。这些快捷键至少让我知道如何使用它。
- 退出 vim:
:q
- 进入编辑模式:(
i
是的,只需输入i
即可进入编辑模式) - 退出编辑模式(和所有其他模式):
esc
- 要“保存文件”:
:w
- 关闭但不“保存”:
:q!
- 垂直拆分“标签”:
Ctrl + wv
- 水平拆分“标签”:
Ctrl + ws
- 要在“标签”之间切换:
Ctrl + ww
插件
首先,像所有寻求知识的人一样,我How to add plugins to vim
在 Google 上搜索了一下。我点击了一些链接,其中一个链接指向Pathogen,这是一个使用 Git(就 Git 而言)来获取插件的包管理器。我也读过VimPlug 的文章,但我最终选择了 Pathogen。
为什么?嗯,我喜欢它的启用方式:
execute pathogen#infect()
syntax on
filetype plugin indent on
你看到了吗?病原体“感染”了 VIM。是不是很棒?好吧,我读到这句话的时候可能笑得有点厉害,甚至有点过头了。这说服了我使用它而不是 VimPlug。
插件列表
现在我有了插件管理器,接下来就需要插件了。我在哪里找到它们呢?我使用Vim Awesome获取了最常用的插件列表,并筛选出与 JS/TS/Go 相关的插件。然后,我安装了它们。以下是我为当前开发下载的模块列表:
(图片取自 Vimawesome)
-
NERDTree(与文件系统交互)
-
Vim Airline(为了获得良好的外观和感觉)
-
Vim Fugitive(这个插件太棒了,应该是非法的)
-
Vim Polyglot(用于非常好的语法突出显示)
-
ALE(异步 linting 引擎。这对于 Vim 的配置非常
ESLint
有用Prettier
) -
COC.vim(终极代码完成插件)
这些并不是我使用的全部插件。我只列出了最重要的几个。如果没有它们的帮助,我就无法在 VIM 中编写代码。
使用我找到的插件和一个主题(名为onehalfdark
)的最终产品是这样的:
希望您喜欢我对 Vim 世界的介绍,也许这会激励您开始进入 Vim!
鏂囩珷鏉ユ簮锛�https://dev.to/kaleman15/developing-js-ts-with-vim-49ke