什么是vim?
vim是从vi发展来的一个程序开发工具。vi一般在Linux系统都会有,但vim则不一定都会有。vim不仅仅是文本编辑器,还是程序开发者的工具,包括代码补全、编译及错误跳转等丰富的编程功能。
以下是vim键盘图:
vim的使用
vim共有三种模式,分别是命令模式(command mode),输入模式(insert mode)和底线命令模式(last line mode)。以下分别对三种模式进行简述。
命令模式
当使用vim命令时,便进入了命令模式。如果文件不存在,在文件中写入内容并保存退出,则创建了一个新的文件。
在命令模式下敲击键盘会被vim识别为命令,而不是输入字符。
常用的命令:
按下i,切换到输入模式,可以输入字符。
按下:,切换到底线命令模式,可以在最后一行输入命令。
输入模式
在命令模式下按下iao就进入了输入模式,可以对文件进行增删改查操作。当按下ESC就退出了输入模式,进入到命令模式。
底线命令模式
在命令模式下按下:就进入到了底线命令模式,按ESC可以随时退出底线命令模式,进入到命令模式。
按下q,退出文件。
按下w,保存文件。
按下wq,保存文件并退出。
按下q!,强制退出文件。
按下wq!,保存文件并强制退出。
下图将更形象的说明三个模式之间的关系
vim操作举例
下面以httpd.conf文件为例进行操作,首先进入文件。
输入图上命令,进入命令模式
然后按下i,进入输入模式,可以编辑文本,最下方会出现--插入--的字样,提示可以输入字符
然后我们在光标处输入字符
输入完成后,按下ESC,在按下:wq就可以写入文本并退出了。
然后我们在打开文件看看刚才的文件是否写入成功
再次打开之后可以看到写入成功
vim常用按键
命令模式常用按键
移动光标按键
向左移动,h或向左箭头
向下移动,j或向下箭头
向上移动,k或向上箭头
向右移动,l或向右箭头
hjkl(左下上右),如果向下移动30行,可以使用“30j”组合按键,如果向上移动30行,则可以使用“30k”组合按键
屏幕向下移动一页,PD或Ctrl+f
屏幕向上移动一页,PU或Ctrl+b
屏幕向下移动半页,Ctrl+d
屏幕向上移动半页,Ctrl+u
移动到光标所在行的第一个字符,数字0或Home键
移动到光标所在行的最后一个字符,$或者End键
移动到当前屏幕的最上方那一行的第一个字符,H
移动到当前屏幕中间那一行的第一个字符,M
移动到当前屏幕最下方的那一行的第一个字符,L
移动到文件的最后一行,G
移动到文件的第一行,gg
移动到文件的第n行,nG
向下移动n行,数字n
查询按键
向下查询名称为directory的字符串,/directory
向上查询名称为listen的字符串,?listen
重复刚刚向下查询,字母n
重复刚刚向上查询,字母N
替换按键
例如,在100行到200行将directory替换为DIRECTORY,命令为:100,200s/directory/DIRECTORY/g
在第一行到最后一行将listen替换为LISTEN,替换前需要确认,命令为:1,$s/listen/LISTEN/gc
删除按键
x向后删除一个字符,相当于delete,X向前删除一个字符,相当于backspace
nx连续向后删除n个字符
dd删除光标所在的一整行
ndd删除光标所在的向下n行,包括光标所在行
d1G删除光标所在到第一行的所有数据
dG删除光标所在到最后一行的所有数据
复制按键
yy复制光标所在的那一行
nyy复制光标所在的向下n行,n是数字
y1G复制光标所在列到第一列的所有数据
yG复制光标所在列到最后一行的所有数据
u复原上一个动作
.重复上一个动作
Ctrl+r重复上一个动作
命令模式切换到输入模式常用按键
i进入输入模式,i为从目前光标所在处输入
a进入输入模式,a为从目前光标所在的下一个字符开始输入
o进入输入模式,在目前光标所在的下一行输入新的一行
ESC退出编辑模式进入到命令模式
输入aio,文本的左下方会显示“--插入--”字样
命令模式切换到底线命令模式常用按键
:w将输入的数据写入到硬盘中
:w!将输入的数据强制写入到硬盘中
:q退出vim
:q!将输入的数据不写入到硬盘强制退出vim
:wq将输入的数据写入到硬盘并离开vim
:wq!将输入的数据强制写入到硬盘再离开vim
:w[httpd-test.conf]将httpd.conf文件另存为httpd-test.conf
:r[test.txt]将test.txt文件中的内容添加到光标所在行后面