标签:
玩转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上进行的,所以就说下它的安装吧。其实也就是一行命令的事儿了:
1 [root@voidy ~]# yum install vim 2 Loaded plugins: fastestmirror 3 Setting up Install Process 4 Loading mirror speeds from cached hostfile 5 epel/metalink | 4.3 kB 00:00
至此vim安装结束,现在先不要进行任何操作,先接着往下看:
1 [root@voidy site-packages]# vim site.py
然后就会看到如下的界面:
1 def __boot(): 2 import sys, imp, os, os.path 3 PYTHONPATH = os.environ.get(‘PYTHONPATH‘)
此时进入了所谓的常规模式(Normal Mode),既然提到了模式这个概念,那么就详细的说下Vim的两种模式吧。
常规模式(Normal Mode)与插入模式(Insert Mode):
常规模式:可以进行编辑,对已存在的文字进行一些操作,包括:复制,剪切,移动,修改,删除,格式化等等。
插入模式:也就是传说中的输入了。
而大部分的编辑器都只有一种模式,以上两部分的操作合并在一起进行,这就是为什么会有菜单和按钮的原因,而对于文字的范围选择也需要额外的方法来辅助,比如快捷键和鼠标操作等。无论是什么样的情况我们都不得不迫使大脑在思考(输入)和寻找(编辑)中不停转换,即使你不在意这一点,始终有一些操作你是无法流水化的。比如说:在光标随意停留在某处的时候,你能闭着眼睛用鼠标点击到某个功能吗?Vim 就可以。换言之一旦你掌握了 Vim之后,所有的操作——强调一遍:所有的操作都可以不用寻找,不用鼠标等工具辅助,你可以全副身心投入在你的主要目标上。
那么问题来了,如何在两种模式间进行切换呢?
其实很简单的。进入文件之后直接就是常规模式,那么从常规模式进入到插入模式只需要从以下几个命令选择一个即可:
1 i:在当前字符的左边插入
2 I:在当前行首插入
3 a:在当前字符的右边插入
4 A:在当前行尾插入
5 o:在当前行下面插入一个新行
6 O:在当前行上面插入一个新行
那么如何从插入模式进到常规模式,最常见的有三种:
使用 ESC
键:这是最通用的方法,它唯一的缺点就是距离标准键位较远,然而由于它的位置在左上角,所以你也可以做一些强化练习来准确的找到它。记住:不要看键盘去找,要形成肌肉记忆!也有很多人偏好修改 ESC
键位,比如说把它转移到 CapsLock
,即大写锁定键上去,这是可取的,并且也十分有效,然而我不推荐这么做。因为修改键位相对来说麻烦一些,在某些场景会让你颇感不便。比如说你去客户那里安装服务器,遇到的几乎都是标准键盘,不光是在 Vim 下让你难受,其他的地方也是如此,因为 ESC
太常用了,而且没有第二替代键。
使用 Ctrl-[
组合键:它的功能和 ESC
完全等价,只是组合键稍微困难一些。这里的窍门是 Ctrl
键的位置,我会把它重新映射到 CapsLock
键上去。这样一来两手的小指稍微移动就可以完成,稍加训练即可熟练掌握。这也是我不推荐 ESC
的第二个原因,至于之前提到过的键位映射带来的后遗症,不要紧,键盘上都有不止一个的 Ctrl
键,你根本无需调整键位。
使用 Ctrl-c
组合键:看起来它似乎比 Ctrl-[
更容易一些,但是它们的含义有很大的差别。在终端下 Ctrl-c
的意思是“中断”,基本上它会中止所有正在运行的命令,当然它也可以在 Vim 里带我们中断一切操作返回默认的常规模式。但是 Vim 有一些操作其实是依赖正常的返回方法的,也就是 ESC
或者 Ctrl-[
,使用 Ctrl-c
会导致这样的功能无法被有效触发(有不少插件依赖这些触发功能,所以要小心莫名其妙的问题)。总而言之这是最不推荐的方法,除非你心里很有数,并且能在正确的时候使用前面两种方法。
好的,模式的介绍就此打住,在真正玩之前,特别建议要学会VIm的移动指令:Vim 的基本移动就是 h
j
k
l
这四个键,分别代表 左
下
上
右
。
1 h 光标左移
2 j 光标下移
3 k 光标上移
4 l 光标右移
很特别是吗?好吧,我承认是很古怪。然而你必须要习惯它们,并且永远不要更改它们的键位!这样你就可以没有小键盘的情况下也可以快速的移动,当然,最主要的是你还可以手指不用怎么大幅度的移动。至于为什么要这么设计?好像键盘都是这么设计的吧。不信的话戳这里。
很不好记,很难练是么?不想练习是么?没事,下面给你四个有趣的东西,相信你会不知不觉爱上这些方向键的:
h
j
k
l
来控制方向而已。注意,只有在插入模式(i
)才能吃到东西,只有在常规模式(ESC
)才能移动方向。完整的流程如下:移动 -> 对准目标 -> 按下 i
直到吃到目标 -> 迅速按下 ESC
-> 移动。关于模式,我们下次解释。至此,Vim的大门已经打开,此次介绍也就到此结束了。
以上。Enjoy Vim!
PS:本博客欢迎转发,但请注明博客地址及作者,因本人水平有限,若有不对之处,欢迎指出,谢谢~
博客地址:http://www.cnblogs.com/voidy/
博客新址:http://voidy.net
<。)#)))≦
标签:
原文地址:http://www.cnblogs.com/voidy/p/4434944.html