博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
你会爱Vim编辑器的七个理由
阅读量:5924 次
发布时间:2019-06-19

本文共 1453 字,大约阅读时间需要 4 分钟。

当我刚刚开始用 vi 文本编辑器的时候,我憎恨它!我认为这是有史以来设计上最痛苦和反人类的编辑器。但我还是决定我必须学会它,因为如果你使用的是 Unix,vi 无处不在并且是唯一一个保证你可以使用的编辑器。在 1998 年是如此,但是直到今天 vi 也仍然是可用的,现有的几乎每个发行版中,vi 基本上都是基础安装的一部分。

在我学会能使用任何功能前,我已经在 vi 上花费差不多 1 个月的时间,但是我仍然不喜欢它。不过那时我已经意识到有个强大的编辑器隐藏在这个古怪的外表后面。所以我坚持使用它,并且最终发现一旦你知道你在干什么,它就是一个快的令人难以置信的编辑器。

“vi” 这个名称是 “可视(visual)” 的缩写。在 vi 出现的时候,行编辑器是很普遍的,能一次性显示并编辑多个行是非同寻常的。Vim,来自“Vi IMproved”的缩写,最初由 Bram Moolenaar 发布于 1991 年,它成为了主要的仿 vi 软件,并且扩展了这个强大的编辑器已有的功能。Vim 强大的正则表达式和“:”命令行语法开始于行编辑和电传打字机时代。

Vim,有 40 年的历史了,有足够的时间发展出海量而复杂的技巧,即使是懂得最多的用户都不能完全掌握它。这里列出了一些爱 Vim 的理由:

  • 配色方案:你可能知道 Vim 有彩色语法高亮。但你知道可以下载数以百计的配色方案么?在这找到些更好的。
  • 你再也不需要让你的手离开键盘或者去碰触鼠标。
  • Vi 或者 Vim 存在任何地方,甚至在 OpenWRT 里面也有 vi(好吧,其实是在 BusyBox中,它挺好用的)。
  • Vimscript:你可能会想重映射几个键,但是你知道 Vim 有自己的编程语言么?你可以重新定义你的编辑器的行为,或者创造特定语言的编辑器扩展。(最近我在定制 Vim 用于 Ansible 的行为。)学习这个语言最佳的切入点是看 Steve Losh 著名的书《Learn Vimscript the Hard Way》。
  • Vim 有插件。使用 vundle(我用的就是它)或者 Pathogen 来管理你的插件来提升 Vim 的功能。
  • 插件可以将 git(或者你选择的 VCS)集成到 Vim 中。
  • 有庞大而活跃的线上社区,如果你在线上提问关于 Vim 的问题,肯定会有人回答。

我一开始讨厌 vi 的可笑之处在于,这 5 年来不断的在尝试新的编辑器中碰壁,总是想找到“一些更好的”。我从来没有像讨厌 vi 一样讨厌过其它的编辑器,现在我已经使用它 17 年了,因为我想象不出一个更好的编辑器。额,或许有稍微好一点的:可以尝试下 Neovim -这是未来的主流。看起来 Bram Moolenaar 将会把 Neovim 的大部分融入到 Vim 第 8 版中,这意味着将会在现有的代码基础上减少 30%、更好的代码补全功能、真正的异步、内置终端、内置鼠标支持、完全兼容。

在本文作者在多伦多的 LinuxCon 演讲中(LCTT 译注:LinuxCon 是 Linux 基金会举办的年度会议),他解释了一些在你可能错过的、过去四十年增加的杂乱的扩展和改进。这个内容不适合初学者,所以如果你不知道为什么 “hjklia:wq”是很重要的,这就可能不是讲给你听的。它还会涉及一点关于 vi 的历史,因为知道一些历史能帮助我们理解我们的处境。关注他的演讲能让你知道如何使你最喜欢的编辑器更好更快。

作者:Giles Orr
来源:51CTO

转载地址:http://xxovx.baihongyu.com/

你可能感兴趣的文章
关于Spring的事务Transactional,锁同步,并发线程
查看>>
github的使用教程
查看>>
操作系统基础知识
查看>>
PHP中 对象自动调用的方法:__set()、__get()、__tostring()
查看>>
分析拼多多的崛起【产品思维】
查看>>
用java写了一个汉诺塔
查看>>
C++的enum hack
查看>>
[ JS 进阶 ] Repaint 、Reflow 的基本认识和优化 (2)
查看>>
如何获得一个集合的所有子集合?
查看>>
Oracle-13:Oracle中的表分区
查看>>
使用 Dubbo 对遗留单体系统进行微服务改造
查看>>
Ubuntu Core 给物联网提供更多安全支持
查看>>
Optaplanner规划引擎的工作原理及简单示例(1)
查看>>
CC框架实践(1):实现登录成功再进入目标界面功能
查看>>
分享一些 Java 后端的个人干货
查看>>
微软宣布正式开源 Azure IoT Edge 边缘计算服务
查看>>
使用xUnit为.net core程序进行单元测试(3)
查看>>
android笔记之在WebView中显示ProgressBar的两种方法
查看>>
Linux包系列的知识(附:Ubuntu16.04升级到18.04的案例)
查看>>
如何关闭Struts2的webconsole.html
查看>>