一、为何要学vim?
因为很多Linux命令默认使用vi作为数据编辑的窗口,并且其编辑速度快,能主动辨别语法的正确性,方便程序设计。
二、vi/vim的区别
它们都是多模式编辑器,不同的是vim是vi的升级版本。vim不仅兼容了所有vi的命令,而且还有一些新的特性在里面。
三、vi的基本模式
vi基本上共分为三种模式,分别是一般模式、插入模式和命令行模式。
(1)一般模式:
以vi打开一个文件将直接进入一般模式(默认)。在这个模式中,可以左右上下移动光标,也可以删除字符或者删除整行,还可以粘贴、复制文件数据。
(2)编辑模式:
在一般模式下可以进行粘贴、复制和删除操作,但是不能编辑文件内容。想要编辑文件内容,需进入编辑模式,即按“i、I、o、O、a、A、r、R”等任意字母。退出则按【ESC】回到一般模式。
(3)命令行模式:
在一般模式下,想要进入命令行模式,需要输入“:、/、?”中的任意按钮,光标将移动到最下面那一行。在这个模式中,可以对数据进行查找、读取、大量替换字符、显示行号、保存和离开vi等操作。
三种模式的关系如下图所示:
注意:一般模式与编辑模式和命令行模式可互相转换,但是编辑模式和命令行模式之间不能进行模式转换。
四、按键说明
1、一般模式:
(1)使用vi进入一般模式
【例】
(2)一般模式下的按键说明
1)h/向左箭头键:向左。
2)j/向下箭头键:向下。
3)k/向上箭头键:向上。
4)l/向右箭头键:向右。
注:如果想要进行多次移动,可以使用组合键。如:向下移动6行,可以用“6j”或“6+向下键”。
5)[Ctrl]+[f]:屏幕向下移动一页([Page Down])。
6)[Ctrl]+[b]:屏幕向上移动一页([Page Up])。
7)0/功能键[Home]:(数字零)移动到这一行的最前面字符处。
8)$/功能键[End]:移动到这一行的最后面的字符处。
9)G:移动到文件的最后一行。
10)nG:n为数字。移动到这个文件的第n行。
11)gg:移动到文件的第一行(1G)。
12)N+[Enter]:n为数字。光标向下移动n行。
13)/word:向下查找字符串“word”。“word”表任意字符串。
14)?Word:向上查找字符串“word”。“word”表任意字符串。
15):n1,n2s/word1/word2/g:n1和n2为数字。表在第n1与n2行之间寻找word1这个字符串,并用word2替代word1。
16):1,$s/word1/word2/g:从第一行到最后一行查找word1字符串,并将该字符串替换为word2。
17):1,$s/word1/word2/gc:从第一行到最后一行查找word1字符串,并将该字符串替换为word2,但是在替换之前向用户提示是否替换。
18)X,x:x为向后删除一个字符(Del按键),X为向前删除一个字符。
19)nx:连续向后删除n个字符。
20)dd:删除光标所在的一整行。
21)ndd:向下删除n行。
22)yy:复制光标所在的那一行。
23)nyy:向下复制n行。
24)P,p:P在光标的上一行复制;p在光标的下一行复制。
25)u:后退,复原前一个操作
26)[Ctrl]+r:重做上一个操作。
27)“.”:重复前一个操作。
2、编辑模式
在一般模式之中,按下i、o、a就可进入编辑模式,按[ESC]键就退回一般模式。
从一般模式切换到编辑模式的按键说明:
1)i/I:进入插入模式。I在目前所在行的第一个非空格符处开始插入;i从目前光标所在处插入。
2)A/a:进入插入模式。A在目前所在行的最后一个字符处开始插入;a从目前光标所在的下一个字符处插入。
3)O/o:进入插入模式。O表在光标所在行的上一行插入新的一行;o表在光标所在行的下一行插入新的一行。
4)R/r:进入替换模式。R会一直替换光标所在的文字,直到按下[ESC]键为止;o只替换光标所在的那一个字符一次。
3、命令行模式
在一般模式下,按下“:、?、/”等任意字符,就可进入到命令行模式。
一般模式切换到命令行模式的可用的按钮说明:
1):w :将编辑的数据写入硬盘文件中。
2):q :离开vi。
3):wq :保存后离开。若为“:wq!”表强制保存后离开。