使

使用 VIM 开发 JS/TS

2025-06-09

使用 VIM 开发 JS/TS

起初,有编辑器。VIM 就是一个编辑器。VIM 就是编辑器。

我三年前开始写代码。刚开始写代码的时候,我记得有个同事还在用 Emacs。他只是盯着屏幕,不用鼠标,只是用键盘来做他想做的事情。他试图说服我也用 Emacs,但用起来感觉不太好。

然后,我开始使用 VSCode。VSCode 很棒,我没什么可说的。VSCode 是一款优秀的编辑器。唯一让我感到压力的是它疯狂的内存占用!毕竟,它是基于 Chromium 内核构建的,所以会根据内存需求进行调整。VSCode 几乎可以满足你所有的需求。你想写 Java 代码?它有一个插件。你想测试 API?它有一个插件。你想管理数据库?它有一个插件。它不是一个 IDE,因为他们没有给它起名字!

即使这个丰富的生态系统本身就很美好,也可能导致一些问题。随着你安装更多扩展程序,内存占用可能会变得非常高。而且,根据工作区(你必须手动配置)而不是文件类型禁用它们让我更加头疼。

有一次,我在一个使用大量 Docker 容器的项目中工作,它们本身就占用了大量的内存,而且我还在使用 VSCode。内存的“蛋糕”开始快用完了。此外,我的 Chrome 和其他一些工作应用程序(比如 Slack,它也是基于 Chromium 开发的)也想分一杯羹……我的电脑不太适应这种情况,崩溃了。这种情况持续了一个月。我试过换浏览器,试过在手机上使用 Slack,试过一些黑魔法来充分利用我的电脑,甚至试过下载更多内存(我真心希望这个方法能管用……:( )。但什么也没发生。

然后,我恍然大悟。

我上过一门课,其中一位老师用的是 VIM,但它就像一个 IDE。它完美无瑕。他在选项卡(缓冲区)之间切换非常迅速,命令也直观易懂。配色方案很棒,速度也令人印象深刻。它有自动完成和列表功能……一切都很完美。

受此启发,我打开笔记本电脑,安装了 VIM。但是……
第一次打开 vim

它和视频里不一样。为什么?我没有自动完成功能,也没有状态栏和文件资源管理器……它只是一个空控制台。就像 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 8 有原生插件支持......
掀翻桌子

插件列表

现在我有了插件管理器,接下来就需要插件了。我在哪里找到它们呢?我使用Vim Awesome获取了最常用的插件列表,并筛选出与 JS/TS/Go 相关的插件。然后,我安装了它们。以下是我为当前开发下载的模块列表:

(图片取自 Vimawesome)

  • NERDTree(与文件系统交互)
    nerdtree 的外观和感觉

  • Vim Airline(为了获得良好的外观和感觉)
    vim 航空公司的外观和感觉

  • Vim Fugitive(这个插件太棒了,应该是非法的)
    示例 git log 从 fugitive.vim 运行

  • Vim Polyglot(用于非常好的语法突出显示)
    使用 Polyglot 突出显示 Typescript 语法

  • ALE(异步 linting 引擎。这对于 Vim 的配置非常ESLint有用Prettier
    示例 ale linting js 代码

  • COC.vim(终极代码完成插件)
    示例 coc.vim 建议代码

这些并不是我使用的全部插件。我只列出了最重要的几个。如果没有它们的帮助,我就无法在 VIM 中编写代码。

使用我找到的插件和一个主题(名为onehalfdark)的最终产品是这样的:

在我的 vim 上投入时间之后

希望您喜欢我对 Vim 世界的介绍,也许这会激励您开始进入 Vim!

鏂囩珷鏉ユ簮锛�https://dev.to/kaleman15/developing-js-ts-with-vim-49ke
PREV
优化 SQL 查询的秘诀 - 了解 SQL 执行顺序🚀
NEXT
我如何开始学习函数式编程