作 者 | Andriy Semenets 翻 译 | CSDN/弯月
从上世纪九十年代起到现在 Vim 一直是最流行、应用最广泛的文本编辑器之一。程序员、作家、系统管理员、运维人员以及其他需要与文本文件打交道的人都在积极地使用它。但现在都 2020 年了,我们有各种现代文本编辑器,还有必要学习 Vim 吗?
最简单的启动 Vim 的方法就是在终端上执行 vim 命令。
生产力提升
从我个人的角度来看,使用 Vim 最主要的理由就是提升生产力。作为一名全职的 JavaScript 程序员,我每天都要编辑各种代码文件、配置文件等。Vim 背后“基于模式编辑”的思想非常简单,但同时也非常强大。简单来说,针对一段文本进行的任何动作(如删除一个词、删除一行、复制一句话等)都可以用一个简单的按键完成。此外,你还可以重复命令、录制宏等等。
在使用 Vim 一两周后,你做的一切动作都会成为肌肉记忆。任何与文本编辑或文件浏览有关的动作都能在不到一秒的时间内完成。
当然,生产力并不仅仅与工作流程有关。Vim 自身的性能非常高,加载速度也非常快。你可以在这篇文章“为什么我依然在使用Vim”(https://medium.com/commitlog/why-i-still-use-vim-67afd76b4db6)里找到更多的评测和与其他文本编辑器的比较。
学习曲线
人们对于学习 Vim 的最大的误解之一就是学习曲线——它非常难以学习。但事实并非如此。
与其他任何工具一样,Vim 有自己的学习曲线。许多人在第一次尝试 Vim 时会感到非常沮丧。但真正的原因并不是因为 Vim 有多难,而是因为在他们脑海中,寻常的文本编辑流程已经根深蒂固了。
而事实上,Vim 非常简单,用不了一天就能学会它的基本操作。像其他工具一样,你用得越多,学习新功能就越容易。只要坚持练习,大约在两周(或者更短)之后,你就能完全使用 Vim 进行工作。
学习 Vim 的主要来源包括:
- openvim.com:http://openvim.com/
- vim-adventures.com:https://vim-adventures.com/
- :vimtutor:https://superuser.com/questions/246487/how-to-use-vimtutor
与 IDE 相似的行为
许多人都问能不能把 Vim 配置得像现代 IDE 一样。想使用 linter、智能补齐或模糊搜索等功能怎么办?这一切都可以通过插件实现。Vim 有非常棒的社区支持,而这个良好的社区提供了无数的插件。
我目前的 Vim 配置示例(https://github.com/semanser/dotfiles/blob/master/.vimrc)
如果你想了解更多关于现代 vim 配置的知识,那么可以访问 vimporn(https://www.reddit.com/r/vimporn/)这个论坛。
其他编辑器中的 Vim 模式
我并不推荐使用这种方式学习“真正”的 Vim,但如果你必须在某种特殊的环境下工作,如 XCode、Qt Designer,或者你很喜欢 Sublime Text 的配置,但依然想尝试下 Vim 该怎么办呢?Vim 模式提供了一种其他编辑器和 Vim 之间的折中方案。
几乎所有流行的编辑器都有 Vim 模式的插件,或者内嵌了 Vim 模式的功能,所以只需要找出怎样启用它即可。它能给你的编辑器添加 Vim 的命令,这样就能在各种编辑器中使用 Vim 的命令了。
一些流行的 Vim 模拟器包括:
- Vintage Mode(Sublime Text):https://www.sublimetext.com/docs/3/vintage.html
- VSCodeVim(Visual Studio Code):https://github.com/VSCodeVim/Vim
- FakeVim(Qt Creator):http://doc.qt.io/qtcreator/creator-editor-fakevim.html
- ViEmu(Visual Studio, Xcode, Word, Outlook):http://www.viemu.com/
结论
作为开发人员或作家,Vim 是最值得投入时间学习的事情之一。学习 Vim 用不了几个星期,但从长远来考虑,它能给你以后的文本编辑工作节省你几个星期甚至几个月的时间。