什么是vim
在Linux环境下,编辑文件一般都会用到vim命令,可以当做vi命令的高级版本。
可以说,掌握Linux的常用命令是程序员的基本要求,而vim命令的熟练操作就是重中之重。
按照鸟哥的说法:
- 所有的UNIX Like系统都会内置vi文本编辑器,其它的文本编辑器则不一定会存在
- 很多软件的编辑接口都会主动调用vi
- vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性,方便程序设计
- 程序简单,编辑速度相当快
vi的模式
vi分为3种模式
一般模式
这也是默认的模式,用vim打开一个文件就直接进入了这个模式。在这个模式下,可以使用上下左右键来移动光标,可以删除字符或删除整行,也可以复制、粘贴文件数据
比如,编辑spark-env.sh.test这个文件
vim spark-env.sh.test
会以字体颜色辨别

编辑模式
在一般模式下可以进行删除、复制、粘贴等操作,但是却无法编辑文件内容的。
按下"i,I,o,O,a,A,r,R"等任何一个字母之后才会进入编辑模式。通常在Linux中,按下这些按键之后,界面会出现INSERT或REPLACE的字样,就可以进行编辑了。如果要回到一般模式,就按下【ESC】这个按键即可退出编辑模式

命令模式
在一般模式中,按下":、?、/"这3个中的任何一个按钮,就可以将光标移到到最下面的那一行。
在这个模式下,可以进行字符的查找,比如查找HADOOP这个单词,按下"/",然后输入HADOOP,找到第一字符出现的那行,然后按"n"继续向下搜下下一个

读取、保存、大量替换字符、离开vi、显示行号等的操作都是在这个模式下完成的
3个模式的转换关系可以用下图表示

常用命令
一般模式
删除、复制与粘贴
| 命令 | 说明 |
| x,X | 在一行字当中,x为向后删除一个字符(相当于[Del]),X为向前删除一个字符(相当于[Backspace]) |
| nx | n为数字,连续向后删除n个字符。比如连续向后删除10个字符,"10x" |
| dd | 删除光标所在的那一整行 |
| ndd | n为数字,删除光标所在的向下n行,例如20dd则是删除20行 |
| yy | 复制光标所在的那一行 |
| nyy | n为数字。复制光标所在的向下n行,例如20yy则是复制20行 |
| p,P | p为将已复制的数据在光标下一行粘贴,P则为粘贴在光标的上一行。 |
移动光标的常用方法
| 命令 | 说明 |
| [Ctrl]+[f] | 屏幕向下移动一页,相当于[Page Down] |
| [Ctrl]+[b] | 屏幕向上移动一页,相当于[Page Up] |
| G | 移动到这个文件的最后一行 |
| gg | 移动到这个文件的第一行,相当于1G |
| N[Enter] | n为数字,光标向下移动n行 |
| u | 复原前一个操作 |
| [Ctrl]+r | 重做上一个操作 |
| . | 小数点,重复前一个操作。比如重复删除、重复粘贴等操作 |
查找与替换
| 命令 | 说明 |
| /word | 向下寻找一个名词为word的字符串,例如要在文件寻找HADOOP,输入/HADOOP就行 |
| ?word | 向上寻找一个名词为word的字符串 |
| n | 代表重复前一个查找操作,例如要在文件寻找HADOOP,输入/HADOOP就行,然后继续按n会寻找下一个 |
| 0或功能键[Home] | 这是数字"0":移动到这一行的最前面的字符串处 |
| $或功能键[End] | 移动到这一行的最后面字符串处 |
| :n1,n2s/word1/word2/g | n1与n2为数字。在第n1到n2行之间寻找字符串word1,并替换为字符串word2。比如,在1到10行直接,寻找SPARK替换spark:":1,10s/SPARK/spark/g" |
| :1,$s/word1/word2/g | 从第1到最后一行之间寻找字符串word1,并替换为字符串word2。 |
| :1,$s/word1/word2/gc | 从第1到最后一行之间寻找字符串word1,并替换为字符串word2。并让用户确认 |
编辑模式
| 命令 | 说明 |
| i,I |
进入插入模式: i为从目前光标所在处插入,I为目前所在行第一个非空格字符处开始插入 |
| o,O |
进入插入模式: o为目前光标所在行的下一行处插入新的一行,O为o为目前光标所在行的上一行处插入新的一行 |
| a,A |
进入插入模式: a为从目前光标所在的下一个字符处插入,A为目前所在行最后一个字符处开始插 |
| r,R |
进入替换模式: r只会替换光标所在的那一个字符一次;R会一直替换光标所在的文字,直到按下ESC为止 |
命令模式
| 命令 | 说明 |
| :w | 将编辑的数据写入硬盘文件中 |
| :w! | 强制写入文件。不过必须是有该文件的写权限 |
| :q | 离开 |
| :q! | 若曾修改过文件,又不想保存,使用"!"强制离开保存文件 |
| :wq | 保存后离开 |
| :wq! | 强制保存后离开 |
本文详细介绍了Linux环境下的Vim编辑器,包括其作为vi的增强版特性,以及三种主要模式:一般模式、编辑模式和命令模式。在一般模式下,你可以进行删除、复制和粘贴等操作;在编辑模式中,可以编辑文本;而在命令模式下,可以执行保存、查找、替换等高级功能。通过熟练掌握Vim,能提升Linux环境下的文本编辑效率。
394

被折叠的 条评论
为什么被折叠?



