VIM是我在linux上最常用的编辑器了。现在写篇极速入门来帮助新手入门。往往编辑器的教程都是:功能1234,分类1234,过于考验人的记忆力。这里用案例教学法以及助记词来帮助记忆。
VIM启动它只需要vim 文件名就可以:进入编辑状态,或者新建一个文件并进入编辑状态。
一、生成文件并编辑。
1、打开一个文件,刚才说了,比如输入你的文件名hello,vim hello,进入编辑。
2、如果这是一个新文件,一般你是要编辑了,那么i:插入,或者a:在当前光标之后输入。i=insert a=append
3、随便输入点什么,我们先保存一下:按esc键,退出当前的编辑模式,就进入命令模式。vim和vi一样都分编辑模式和命令模式,这一点和所见即所得的word有点不一样。因为没有按钮和菜单嘛,你不进入一个命令模式怎么操作各类指令……OK,保存的话,先要输入英文冒号: 告诉vim我要输入点什么指令了,然后输入w (w=write),回车,就保存了。冒号和w都会在文件的最下边显示出来。
q是quit的缩写。
一个问题:怎么另存为?:w filename,比如要存为hello2,就 :w hello2 回车,那么就存为了hello2文件,并且开始编辑hello2了。
4、退出:编辑完了,退出。还是在命令模式下(如果不确定自己是不是就多按两次ESC),输入:q,就退出了。如果放弃最近的保存,那么需要用一个叹号告诉vim你是强行退出的。 :q! 如果先保存再退出, :wq 还有一个强行保存:w! 这是为了牛用户root,即使文件是只读的,用叹号也能保存,但是小心啊,有风险啊。所以进入vim前经常的一个操作是:cp hello hello.bak 先做个备份比较保险,不然ip地址profile什么的万一搞错了可是没人帮你找回来的。
作为编辑一个文件的最后一步,vim还支持一个非常快的操作,命令模式下输入ZZ,就写入退出了。more一下看看?more !$,看刚才编辑的文件。
好,一个新文件就完成了。那么我们编辑一个旧文件。就先复制一个profile文件,cp /etc/profile /home/user1/profiletest.bak 解解闷。
二、编辑已有文件。
1、打开vim profiletest.bak。
2、上下滚动。最常用的滚动是单行下翻,是j键。那么,上下左右分别对应的是kjhl,就是科技含量的开头4个字母,很有科技感……好的,其实也很好记忆,H和L,分别在左右,但是用得少一点,所以离最常用的手指远,而次常用的光标向上移动一行,就是右手中指。
3、查找单词。这么多行,一定有个单词是PATH,我们快速跳转到PATH吧。命令模式中输入 /PATH 回车 就开始寻找PATH了。/+要搜索的单词 是查找单词命令。查到一个,找下一个的命令是n shift+n是找上一个。
4、找到之后,跳到这个行的末尾……是不是有点按L键(向右移动光标)太多了?命令模式 输入$,就跳到末尾了。助记法:拿钱($)就结束。
5、翻页。当然你也可以凭借良好视力,自己找,上下翻页就行了,下翻一页是ctrl+f 上翻是ctrl+b。助记法:出手(ctrl)相助,翻(f)不(b)翻?还有个方式是上下翻半页,下翻是ctrl+d,上翻是ctrl+u,助记法:出手(ctrl)相助,上(up)下(down)各半。
6、输入一些东西在行尾,我想复制这一行,加一个注释。复制一行简单,命令模式yy 就复制了。到下一行行首,命令模式p,就OK了。助记法:易于(yy)贴(y)
7、其实我输入错了,想删除一行,怎么办?命令模式dd 快速delete。这个命令太好记了……如果你不停的输入d,就会发现文件刷刷的消失。
8、回退/撤销操作。刚才的删除又错了,多删除一行,怎么回退?命令模式u u=undo
9、我不想删除这么多,删除一个字符,命令模式x
x会删除光标之后的字符,X会删除光标前面的。
x$,会删除当前光标到行末的字符。如何删除到行首的?跳到行首,命令模式^,^$分别是正则表达式中,代表行首和行尾的匹配字符,由于它们各自在6和4的上档键,可以联想到一句俗语:四六不分 或 四六不懂。形容什么都不懂、言语粗鲁。
10、快速跳转。按照刚才操作,还有一些命令也比较简单可以学习:w b:w是移动到下一个单词最前面(word),b是移动到上一个单词最前面(backward a word),e是移动到本单词末尾(end)。
11、复制粘贴。最后来学习一下任意段落的复制就差不多啦,我想从当前行复制一部分,然后到另外一个地方粘贴,操作序列如下:
进入命令模式, ctrl+v 移动光标或者使用命令让光标跳转到单词末、行末、下一行末,这时光标走过的地方就会反向显示,选好了之后,按y,现在复制过的东西就已经到了剪贴板。
移动光标到要粘贴的地方,按p,或者P,就把内容粘贴到光标后,或者光标前了。
12、组合命令。如果要移动多行,多个单词,多个半页(这个很怪),就先输入数字,然后带上操作字符。比如向下移动3行,3j;向前移动4个单词到单词前面,4b;同理删除多行:4dd。小心操作这个删除命令啊,错了就u恢复。
作为一个程序员,往往要看行号的,那么命令模式:set number,切换到显示行号模式。:set nonumber切换到不显示行号模式。
这就有一个新问题,我能跳转到某一行吗?可以。命令模式下输入冒号行号。:3,就是跳转到第3行。命令模式gg 或者:1 跳转到第一行。命令模式shift+g 或 :$ 跳转到最后一行。g就是goto/go啊,好快。
一篇极速入门就完成了,如果你觉得有帮助,麻烦点个赞哦。:)
一些VIM的八卦:vim是vi improved的缩写(abbreviation),vi是取visual editor的前两个字母。
vi作为一个非常古老的编辑器,在原本使用的机器上,没有上下左右的按钮(个人计算机键盘有上下左右按钮要追溯到IBM-PC和苹果PC普及的时代),