当我刚刚开始用 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 著名的书《LearnVimscript the Hard Way》。

Vim 有插件。使用 vundle(我用的就是它)或者Pathogen 来管理你的插件来提升 Vim 的功能。

插件可以将 git(或者你选择的 VCS)集成到 Vim 中。

有庞大而活跃的线上社区,如果你在线上提问关于Vim 的问题,肯定会有人回答。

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

大家如果有更好用的编辑器,可以共享一下哦!

最新文章

  1. linu for循环
  2. EFCore执行Sql语句的方法:FromSql与ExecuteSqlCommand
  3. OpenERP在哪储存附件?
  4. Java面向对象的思想
  5. VMware Workstation不可恢复的错误:(vmui)
  6. visual studio 2010 破解版 破解方法
  7. wget https://github.com/xxx/yyy/archive/${commit_hash}.zip
  8. Lambda表达式实现有限状态机
  9. HDOJ 2052 Picture
  10. spring mvc DispatcherServlet详解之前传---前端控制器架构
  11. win32多线程程序设计笔记(第二章)
  12. Python内置函数(54)——callable
  13. CDN(Content Delivery Network)技术原理概要
  14. 基于89C51/52单片机的红外线遥控驱动
  15. Log4j2 设置控制台打印彩色日志
  16. 菜鸡学C语言之寻根溯源
  17. cellmap 基站查询 for android
  18. Jmeter添加变量的四种方法
  19. mysql_connect(): Headers and client library minor version mismatch.
  20. 微信小程序中使用wxParse展示HTML内容

热门文章

  1. 《Python编程从0到1》笔记4——你分得清“索引和切片”吗?
  2. websocket服务器推送 (node+express+vue+socket)
  3. mysql——多表——子查询——示例
  4. [ASP.NET] 后台判断文本框输入内容是否为数字
  5. olap和Oltp(转)
  6. Win7(64位)下安装Anaconda+Tensorflow(CPU)
  7. Redis info笔记
  8. killall - 以名字方式来杀死进程
  9. php 中英文混合字符串长度计算
  10. Uber回馈开源的一些软件