玩转Vim-札记(一)

##简介

在这个蔚蓝色的星球上,流传着两大神器的传说:据说Emacs是神的编辑器,而Vim是编辑器之神。一些人勇敢地拾起了Vim或Emacs,却发现学习曲线陡峭而漫长,还是有一些人留下来了,坚定地守护着这两大神器。一些说葡萄太酸的人想离开又不甘心,总是问:它们到底神在哪里啊?不过在此我只介绍传说中的编辑器之神-Vim。Vim是Vi最受欢迎的变种之一,除了继承了Vi迅捷的编辑方式, Vim的功能已经比原始的Vi强大得多。这也得益于它可以用Vim脚本无限地扩展。 Vim.org 上已经有数千个脚本了,给Vim增加各种各样的特性和功能。而且它的设计更符合Unix传统,它通过管道机制和系统内各种积木工具打交道,它讲究的是和系统内的工具程序协作来完成用户的任务。除此之外,它的定位也相当明确,就是做一个强大的编辑器,因此它的绝大部分扩展,都是为了更好的完成编辑文本的任务。Vim的前身Vi的作者Bill Joy和Emacs的作者Richard Stallman 都是那个时代著名的黑客,所以这两款编辑器一开始面向的主要用户就是写程序的人,现在仍然是。它们对编程加入了越来越多的支持,如语法高亮、智能缩进、关键字补全甚至集成调试。

##初窥门径

要想玩嘛,首先需要先安装一个Vim再说咯。由于我的开发一般都是在CentOS上进行的,所以就说下它的安装吧。其实也就是一行命令的事儿了:

[root@voidy ~]# yum install vim
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
epel/metalink                                                                                                 | 4.3 kB     00:00

至此vim安装结束,现在先不要进行任何操作,先接着往下看:

[root@voidy site-packages]# vim site.py

然后就会看到如下的界面:

def __boot():
    import sys, imp, os, os.path
    PYTHONPATH = os.environ.get('PYTHONPATH')

此时进入了所谓的常规模式(Normal Mode),既然提到了模式这个概念,那么就详细的说下Vim的两种模式吧。

常规模式(Normal Mode)插入模式(Insert Mode)

常规模式:可以进行编辑,对已存在的文字进行一些操作,包括:复制,剪切,移动,修改,删除,格式化等等。

插入模式:也就是传说中的输入了。

而大部分的编辑器都只有一种模式,以上两部分的操作合并在一起进行,这就是为什么会有菜单和按钮的原因,而对于文字的范围选择也需要额外的方法来辅助,比如快捷键和鼠标操作等。无论是什么样的情况我们都不得不迫使大脑在思考(输入)和寻找(编辑)中不停转换,即使你不在意这一点,始终有一些操作你是无法流水化的。比如说:在光标随意停留在某处的时候,你能闭着眼睛用鼠标点击到某个功能吗?Vim 就可以。换言之一旦你掌握了 Vim之后,所有的操作——强调一遍:所有的操作都可以不用寻找,不用鼠标等工具辅助,你可以全副身心投入在你的主要目标上。

那么问题来了,如何在两种模式间进行切换呢?

其实很简单的。进入文件之后直接就是常规模式,那么从常规模式进入到插入模式只需要从以下几个命令选择一个即可:

i:在当前字符的左边插入
I:在当前行首插入
a:在当前字符的右边插入
A:在当前行尾插入
o:在当前行下面插入一个新行
O:在当前行上面插入一个新行

那么如何从插入模式进到常规模式,最常见的有三种:

好的,模式的介绍就此打住,在真正玩之前,特别建议要学会VIm的移动指令:Vim 的基本移动就是 h j k l 这四个键,分别代表 左 下 上 右

h    光标左移    
j    光标下移    
k    光标上移    
l    光标右移 

很特别是吗?好吧,我承认是很古怪。然而你必须要习惯它们,并且永远不要更改它们的键位!这样你就可以没有小键盘的情况下也可以快速的移动,当然,最主要的是你还可以手指不用怎么大幅度的移动。至于为什么要这么设计?好像键盘都是这么设计的吧。不信的话戳这里

很不好记,很难练是么?不想练习是么?没事,下面给你四个有趣的东西,相信你会不知不觉爱上这些方向键的:

Vim Adventures 这是一款在线游戏,玩法超级简单,控制键都是 Vim 的移动指令。你所要做的就是把键盘当成手柄,移动一个阴影来寻找字母、人物、宝藏、钥匙等等。如果你无法过关也没有关系,重要的是控制方向这个环节能够把它练习到无需思考且不会犯错就可以了。

Vim Snake 如果你觉得上一个游戏有点难,因为无法过关让你有挫折感的话,这个游戏就简单多了——贪吃蛇,谁不会玩?只不过你只能用 h j k l 来控制方向而已。注意,只有在插入模式(i)才能吃到东西,只有在常规模式(ESC)才能移动方向。完整的流程如下:移动 -> 对准目标 -> 按下 i 直到吃到目标 -> 迅速按下 ESC -> 移动。关于模式,我们下次解释。

Open Vim Tutorials 如果以上两款游戏都让你为难的话(喂,你不是吧?!),那么这就是你的救星啦。请直接跳到第三章练习四方向移动,等到开始习惯这种感觉了再继续挑战游戏。

Vim Genius 这也是好东西,它比上一个更贴近 Vim 的哲学。它不让你看到要按哪个键,而是给你文字提示让你盲打对应的键,其好处是锻炼自己的肌肉记忆和条件反射思维。然而它比较依靠你的自控能力与耐心,另外英文不好也会有点拖累。

至此,Vim的大门已经打开,此次介绍也就到此结束了。

以上。Enjoy Vim!


版权声明 本人博文若无特别说明,均由voidy-小鱼原创,若要转载,请附上作者以及博文链接 由于本人水平有限,所以难免有错,若发现错误,请在评论区任意吐槽~ 博文链接:http://voidy.net/