关于学习 Vim

2025-06-10

关于学习 Vim

一年前(现在依然如此),看着ThePrimeagen操作 Vim 编辑器,我总会惊叹不已,不知所措。我也想试试。但我不敢尝试,觉得自己不够聪明,而且学习一些对我的编程知识没有直接价值的东西太费劲了。与此同时,我对目前的 VS Code 体验也不满意,自从我从 Windows 11 换到 Linux 后,它就一直在我的机器上崩溃。几个月前,我吓得说,管它呢。至少我要试试看,到底是什么鬼玩意儿能让 Prime 的光标飞快移动。

直接使用 Vim 感觉非常危险,所以我在 VS Code 中安装了 Vim 模拟器扩展。最初的两周令人沮丧,对我正在进行的任务产生了负面影响。所以,在愚蠢地尝试模仿 Prime 老爹 10-15 分钟后,我就会禁用扩展,用老方法编码。在接下来的两三周里,我每天都会经历这个最初的仪式,感觉自己像个十足的傻瓜,持续 15 分钟,然后继续我每天用 Ctrl、箭头和鼠标进行编程。

到了第三周结束的时候——我不知道什么时候,也不知道是怎么回事——我突然发现自己完全被 Vim 的按键绑定“迷住了”。15 分钟的习惯延长了一点,只有遇到障碍(比如,不知道如何搜索和替换文本)时,我才需要回退。除此之外,我可以用 Vim 的按键绑定将光标精准地放在眼睛想要的位置,无需思考或计算。感觉这才是浏览文本的正确方法。我想在任何地方都用它。

我发现这个系列文章非常有帮助,它解释了我需要知道的所有术语。此外,还有一些来自 Vim 狂热粉丝的精彩演讲,让你相信 Vim 是真实存在的,值得你去思考。

我开始学习 Vim 已经一个多月了。我还没有完全自信地用它来做开发工作,可惜的是,我的开发工作仍然是 React Frontend JS/TS Node。不过我已经设置好了 Neovim(当然),并且用它来开发我最近在做的一个个人项目(Go 命令行工具)(顺便说一下,我失业了——所以最近全职在做个人项目,也全职在 Neovim 上)。而且我猜用 NeoVim 配置前端会是一次糟糕的体验,所以我会完全避免使用它。

我犯了一个大错误,盲目地安装了一个叫nvchad的东西。感觉就像回到了 VSCode,但体验却很糟糕。字体乱七八糟,间距和图标对齐不正确,总的来说,它很不稳定。它也感觉像变魔术一样,这正是我想要避免的。

我对通过添加可爱的图标、自定义字体或将其变成一个完整的 IDE 来丰富 Neovim 的功能不感兴趣。我的目标是保持简洁轻量,避免不必要的配置,并坚持 Vim 的核心。

我偶然发现了这个最小配置:来自 Neovim 狂热成员TJ的kickstart.nvim,他是设置 Neovim 方面最受引用的人物之一,因此值得查看他的作品。

Kickstart 配置对我来说足够复杂。配置文件 ( init.lua) 有详细的文档,所以我很清楚每个设置的作用。太棒了!它还附带一个名为Telescope的插件,可以更轻松地在缓冲区之间切换、搜索文件、更改配色方案等等。(使用 Telescope 确实有点偏离我默认的 Vim 理念,但这个插件非常直观,感觉就像一个内置功能,所以我会保留它。)

对于文件导航,内置的资源管理器 Netrw 就足够了。这是我找到的一个很好的速查表。我的眼睛已经习惯了 VSCode 的那种暗色主题,所以为了方便使用,我添加了这个主题。目前,我的目标是使用默认设置提高效率,并尽可能避免额外的臃肿。

据我所知,学习 Vim 包含两个部分:1. Vim 动作和 2. 配置,这本身就需要一些时间。据我所知,大多数人和资源都花了太多时间进行配置,而不是使用实际的编辑器并努力提高它。所以,目前我的重点是 Vim 动作,因为这项技能易于移植(哇!就连像 Obsidian 这样的笔记应用都有 Vim 的按键绑定)。它与编辑器无关,让编辑变得更加愉快。


那么,学习 vim 一个月后我的情况如何?:

  • 我知道如何退出 Vim。
  • 超越了hjkl基础现在可以直观地使用诸如、、、、、、、、$0命令^ggGf(x)F(x)Ctrl + eCtrl + u
  • 切换模式:i我使用、、切换回插入模式aoO
  • 文本编辑命令:gu使用、gUr[x]编辑、替换和更改文本的大小写ciw
  • 可视模式:使用可视模式标记文本(例如,vapvGv{)。
  • 基本搜索和替换:搜索和替换模式(/pattern%s/old/new/g)。
  • 复制、粘贴、删除:yy诸如、ddpyawyap和 之类的命令daw
  • 使用寄存器:从特定寄存器复制和粘贴(例如,,"ayy"ap
  • 使用 Netrw 进行文件管理:创建和浏览文件。

我的手指已经学会了这三四十个按键绑定,所以现在我写代码时,跟一个月前相比,根本不用费心思考怎么移动。更神奇的是,我完全不用费力记住任何一个按键绑定(只需要记住5-10个),剩下的按键绑定都是凭直觉就能学会的。现在我已经很熟练了,这些天我随意翻看这张速查表,就会不禁感叹:“哦!原来是这样!”

总的来说,到目前为止,学习 Vim 是一段不错的经历。一开始确实很痛苦——我甚至梦到自己打错了 Vim 的手势,结果醒来后小腿抽筋得厉害。我想情况会好起来的。

鏂囩珷鏉ユ簮锛�https://dev.to/sindbad_x/on-learning-vim-2nld
PREV
完美 VS Code 视频和 GIF 录制的 3 个技巧
NEXT
JavaScript:理解“this”关键字