面向使用 Visual Studio Code 的用户的 Vim(全文)想要更多提示吗?

2025-05-24

面向 Visual Studio Code 用户使用的 Vim(全文)

想要更多提示吗?

将 Visual Studio Code 的精彩功能引入 Vim 的热门技巧。

前言

首先我想说,这篇文章不是一篇批评编辑器的文章。你可以使用任何你喜欢的文本编辑器。这真的无关紧要。我写这篇文章只是因为我发现 Vim 的效率提升是我之前用过的任何编辑器(Sublime Text、Atom 或 VSCode)都达不到的。

如果您听说过 Vim,并且想尝试一下,我希望本文可以为您提供一些 VSCode 中熟悉的内容。

为使用 Visual Studio Code 的用户提供的 Vim
基努相信你。我也相信你。

为什么选择 Vim?

使用 Vim 的原因有很多,下面列举一些我的理由。

保持你的手在10和2

为使用 Visual Studio Code 的用户提供的 Vim

当你只使用键盘时,由于无需移动双手,速度自然会提升。嘿,也许你是鼠标操作的黑带高手,可以以肉眼无法察觉的速度来回移动。但对于我们这些普通人来说,这需要时间。

让我们做一些简单的数学计算。

为使用 Visual Studio Code 的用户提供的 Vim
基努相信你。我也相信你。

我的手从“Home 键”移到鼠标需要 600 毫秒。为了便于讨论,我假设平均每分钟在写代码时会这样做一次。无论是滚动、导航到新文件,还是其他类似操作。

600(浪费的时间,以毫秒为单位)x 60(每小时次数)x 5(我实际编码的时间)= 浪费了 180,000 毫秒 =

  1. 每天,几分钟。

是的,好吧,也许这听起来并不是那么糟糕,但是,这 3 分钟可以用来编写函数或重构代码,而不是像哈利波特那样挥舞着你的手!

速度

为使用 Visual Studio Code 的用户提供的 Vim
好吧,也许 65 已经不再那么快了,但是,嘿,这是 1994 年!

我最喜欢的一句话描述了在 VIM 中编写代码的感觉:

“以思维的速度编码”

Vim 的理念是让你直接与计算机沟通。你告诉它你想要什么,它就会帮你完成。对我来说,最让我大开眼界的是这个小细节:

要删除两个对象之间的所有内容(括号、引号等),非常简单:

di'

为使用 Visual Studio Code 的用户提供的 Vim
计算机:删除单引号里面的内容。

这只是使用 Vim 可以完成的令人惊叹的简写操作的一部分。

我是一名真正的程序员!

学习 VIM 的过程中,有一部分是让你了解 UNIX 的工作原理。我的印象是,你接触 bash 之类的东西越多,你就会成为越优秀的程序员。

你可能已经拥有一套非常流畅的命令行设置了。如果你的代码编辑器和命令行能够协同工作,那岂不是很棒?

如何退出 Vim?

您很可能曾经在 Linux 服务器上编辑过文件,却不知道如何退出。比如说,在 Digital Ocean 上更改 SSH 密钥。如果您熟悉 VIM……就不必担心这个问题!

我转向 Vim 的真正原因

说实话,真正促使我转向 Vim 的催化剂是观看 Kyle Mathews(Gatsby.js 的创建者)在演示中使用 Vim 的过程。

你抓住我了。

VS Code 功能及其等效功能

信服了吗?太棒了,这里有一些工具!

插件系统

Vim 本身相当简陋。为了添加插件,我们必须有一个管理它们的机制。来看看 Plug:

junegunn/vim-plug

注意:市面上有很多插件管理器。我选择 Plug 没什么特别的原因。我喜欢它,而且用起来也没遇到什么问题。顺便说一下,据我所知,Vundle 已经不再定期维护了。

文件搜索

多年来,论坛上关于文件搜索的解决方案层出不穷,答案数不胜数。我尝试了几种不同的方案,最终选择了以下组合:

模糊查找器(fzf) + Ripgre p

为使用 Visual Studio Code 的用户提供的 Vim
模糊搜索“主题”

Fzf 是一个构建/维护良好的模糊搜索,可在命令行和 vim 中运行。

注意:您可能会在很多文章中看到 Ag(Silver searcher),但是与 Ag 相关的 vim 插件不再维护,因此建议使用 RipGrep。

智能感知

VSCode 中的自动完成系统(Intellisense)可以说是它最棒的功能。幸运的是,它已经移植到 Vim 上了!

neoclide/coc.nvim

为使用 Visual Studio Code 的用户提供的 Vim
在 React 中导入另一个文件中编写的函数的自动完成功能

CoC 拥有自己的扩展系统,与 VSCodes 的扩展系统类似。它易于使用,并且文档齐全(这是最重要的一点)。

注意:您可能会看到一些谈论 YouCompleteMe 的旧文章,但据我所知,它已经不再维护了。

文件系统资源管理器

与大多数现代文本编辑器一样,VSCode 自带文件资源管理器。Vim 的原生功能netrw也还不错,而且我看过不少文章说你不需要其他东西,比如这里。然而,我发现 NERDTree 太实用了,舍不得用。

scrooloose/nerdtree

Git 集成

说实话,我大部分的 git 操作都是直接在 Iterm 里完成的。不过,VSCode 有个非常棒的 Git Diff 分屏功能。想要达到这种程度的 git 集成,可以试试这个插件:

tpope/vim-fugitive

为使用 Visual Studio Code 的用户提供的 Vim

您可能需要的其他插件

这是我在 Visual Studio Code 中使用过的一些东西,我想将它们带入 Vim。

自动完成括号

这个漂亮的小包会自动关闭那些讨厌的括号。

江庙/汽车配对

文件图标

这会将图标添加到 NERDTree 之类的内容中。

ryanoasis/vim-devicons

Prettier

你肯定不知道,Prettier 官方团队有个 vim 插件。太棒了!而且设置起来超级简单。

prettier/vim-prettier

要使其自动保存,请查看这篇文章

片段

您知道吗,使用完成征服,您可以导入 VSCode 片段!

请查看此内容以了解如何执行此操作:

neoclide/coc.nvim

这是我正在使用的 React 片段包。

xabikos/vscode-react

附加内容

Vim 插件的主页是 Vim Awesome。

Vim 真棒

观看人们使用 Vim 的好地方:

Vimcasts - 关于文本编辑器 Vim 的免费截屏视频

点文件

我重新映射了一些按键,方便使用。请查看我的点文件了解所有这些内容。

DarthOstrich/dotfiles

最后的想法

我的旅程

花了大约一年时间学习 Vim,现在我完全用它了。最初,由于我的效率低下,我只用它来做个人项目。我不得不不停地停下来学习一些操作方法。不过,大约 4 个月前,我彻底放弃了 VSCode,而且不打算再用了。

需要纪律

学习 Vim 似乎令人望而生畏,坦白说确实如此。它需要自律。然而,开发中的一切不都是如此吗?我学过的所有工具/语言/框架,没有一个不需要一定程度的刻意练习

Vim 是一种生活方式的选择。习惯它需要一段时间,而且有时会令人沮丧。但是,如果你坚持使用它,我保证它会改善你的工作流程。如果你有任何其他建议或问题,请在下方留言。祝你编程愉快!

想要更多提示吗?

我有一份你可能会喜欢的简报。我会分享一些网页开发技巧和窍门,以及在洛杉矶做自由职业者的故事。点击此处查看。

额外的学习资源

快速掌握 Vim — Jovica Ilic

8 个 Vim 技巧助你从初学者晋升为专家

参考

切换到 Vim

10 个简单的 Linux 技巧,让我在命令行中节省了 50% 的时间

文章来源:https://dev.to/codenutt/vim-for-people-who-use-visual-studio-code-full-article-1j1c
PREV
关于 JavaScript 中的 Promises
NEXT
你以为高级开发人员会做的六件事(但我们不会)1:我们不避免使用“if”语句2:我们不开发算法3:我们不定制我们的内核4:我们也没有记住正则表达式5:我们不知道所有十大最热门语言6:我们也不觉得自己像高级开发人员