《生产故障解决的基石》之vim用法

什么是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])
nxn为数字,连续向后删除n个字符。比如连续向后删除10个字符,"10x"
dd删除光标所在的那一整行
nddn为数字,删除光标所在的向下n行,例如20dd则是删除20行
yy复制光标所在的那一行
nyyn为数字。复制光标所在的向下n行,例如20yy则是复制20行
p,Pp为将已复制的数据在光标下一行粘贴,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/gn1与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!强制保存后离开

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值