为什么要学习VIM


Vim很多很多年前就接触过,但是一直就把它当成过时的一塌糊涂的玩意,没把它当回事。直到最近在Linux上的工作越来越多,又在stackoverflow上见到众多其粉丝的高度评价后才 将信将疑开始学习,结果重度沉迷其中,不可自拔,上个周末读其帮助文档读到半夜,到底是什么在吸引我呢?

一切都由快捷键实现

有没有快捷键情节可以决定一个人是否适合学习vim。以我为例,当年学photoshop时几乎学会了其全部快捷键,最近开始用visual studio,也是先花半天学习快捷键。想想看vim的命 令模式不就全是快捷键吗?默认的加上自定义的,在数量上可以轻松超过300个,再加上其快捷键可以组合使用,比如y,G,p各自是快捷键,组合起来的yyGp是将当前行复制粘贴到文件尾,这是一个何等强大的快捷键系统!

更高效的焦点移动

大多数人都不相信用键盘移动焦点会快过鼠标。这一段时间我各种编辑器混着用,总的感觉是少数情况下鼠标快,综合考虑Vim命令模式快。

功能强大

什么叫功能强大?本人用了十年的Eclipse也算的上熟练吧。Eclipse中喜欢用的快捷键有Alt加上下移动选中的行,Ctrl加上下键移动可视区域(View port)但不改变光标位置,在上次编辑位置中来回跳等。最近用的Visual Studio 2010中有个用绿色和黄色指示当前编辑过的行的功能,这一点我比较喜欢。但是上面这些功能在VIM这里全部都有,由此可见VIM功能之全面。个人以为仅以编辑器的功能来说vim是主流IDE的超集。

当然了这里也要客观得提一下vim在语言相关的功能上并不能全面压倒IDE,比如Java语言的静态语法错误检测,各种重构,搜索方法的调用层级,accesser自动生成等。但是动态语言的IDE并不具有上述功能(python,PHP等),此时vim占据较大优势。对于静态语言来说,当改Bug查代码为主要任务时,Vim也是非常合适的。

一次学习终身受用

在Linux中应用广泛,可跨平台到Windows, Mac,提供一致性的使用体验 。 Linux发行版中普遍包含,在服务器上调试脚本必不可少。 在Linux常用命令中普遍出现,如git,less,man需要移动和翻页时都可以用vi的方式。

入门难精通快

vim难学,主要体现在人们无法适应没有鼠标的感觉,也无法相信不用鼠标可以更快,然后采用死记硬背的方式来记快捷键,既没信心又没方法。 这里建议大家用分级学习的方法,先明确目标,然后要在用中学,万不可死记硬背。我的分级如下。

第一级是基本概念

Vim中自带了vim tutor学习教程,会指导你边学边做,学习最基本的移动,复制粘贴等,每遍30分钟左右,两三遍后这一级就过了。这时Windows的Notpad就被打败了。

第二级是高级光标移动和复制粘贴

熟练的光标移动非常重要,这一部分学好了编辑效率会直线提升,摆脱心理上对鼠标的依赖。 建议直接学习自带的帮助中的motion一章,输入:h motion即可。 复制粘贴是与选择相关的,高效的复制粘贴掌握后就可以不再依赖Notepad++之类的较高级的编辑器了。

第三级是持续改进级

不断使用,不断发掘,不断熟练。


Jim - 程序员,近10年工作经验集中在Java, Android, C++,现就职于上海。
Published under (CC) BY-NC-SA in categories Common Tec  tagged with vim