vim程序在不同模式下的指令介绍
1.命令模式
1).对文件使用“:set+参数”可以调整文件的工作方式
例如:
指令 | 指令介绍 |
---|---|
:set nu | 给编辑的文件加上行号 |
:set nonu | 取消编辑文件之前的行号 |
:set mouse=a | 给编辑文件设置鼠标,可以使用鼠标拉选多行文件 |
:set cursorline | 给编辑文件加上行线,使用上/下键可以移动行线 |
但是需要注意的是,在文件中使用指令设置的方式是暂时的,如果关闭文件,之前设置的相关指令会消失。若需要永久保留这些命令,则需要在/etc/vimrc配置文件中加入所需要设置的指令,这样在文件关闭时,之前的指令才不会消失。
2).关于字符的搜索
指令 | 指令功能介绍 |
---|---|
/关键词 | 文件中会用黄色标记高亮显示 ,n会向下一个关键词,N会向上一个关键词 |
:noh | 会取消之前的关键词高亮显示 |
3).关于字符的管理
在使用vim编辑文件时,难免会碰到对文件内容的删除,复制,剪切等操作,因此可能会使用到以下指令,以下所有的指令均在vim的命令模式下执行操作。
(1)复制指令‘y’
指令 | 指令功能介绍 |
---|---|
yl | 复制光标所在的一个字母 |
y3l | 复制光标所在位置的三个字母,若光标位于行尾的最后一个字母,该指令相当于‘yl‘ |
yw | 复制一个单词 |
y3w | 复制三个单词 |
yy | 复制光标所在的一行 |
y3y | 复制三行 |
(2)剪切指令‘c’
指令 | 指令功能介绍 |
---|---|
cl | 剪切一个字母 |
c3l | 剪切三个字母 |
cw | 剪切一个单词 |
c3w | 剪切三个单词 |
cc | 剪切光标所在的一行 |
c3c | 剪切三行 |
【注意】在进行剪切命令时,剪切后会进入INSERT(插入模式),因此在进行粘贴命令之前,切记要按【Esc】键,退出插入模式。
(3)删除指令‘d’
指令 | 指令功能介绍 |
---|---|
dl | 删除一个字母 |
d3l | 删除三个字母 |
dw | 删除一个单词 |
d3w | 删除三个单词 |
dd | 删除光标所在的一行 |
d3d | 删除三行 |
(4)其他相关指令
p ###粘贴指令
u ###撤销指令,撤销上一步操作
ctrl+r ###恢复撤销的指令
4).关于字符的替换
在命令模式下输入‘:%s/被替换的字符/想要替换成的字符/g’,其中%s表示所有的行,g表示所有的列,例如:
例:
:1,5s/t/###/g ###表示将1-5行的t全部替换成###,且文件中其余行的t会被高亮显示出来
:/某行的第一个单词/,/其他行的第一个的单词/s/t/###/g ###表示将某行的第一个单词到其他行的所有t替换成###,若所输入的两个单词在文件中的行首多次出现,则会自动选择相距最近的两行目标,进行替换任务,且其余未被替换的t高亮显示。
5).vim的分屏功能
指令 | 指令功能介绍 |
---|---|
ctrl+w 再按s | 实现上下分屏 |
ctrl+w 再按v | 实现左右分屏 |
ctrl+w 再按c | 关闭光标所在的分屏,无法关闭最后一个屏 |
ctrl+w 再按上下左右 | 移动光标到想操作的屏 |
:sp file | 在打开一个文件的情况下打开另一个文件 |
【注意】分屏功能所分的屏幕内容是同步操作的,即改变一个屏幕内容,其他的也会跟着改变,但使用’:sp file’打开的另一个文件是不同步的。
6).光标的移动
指令 | 指令功能介绍 |
---|---|
GG | 将光标移动到文件的最后位置 |
g | 将光标移动到文件的开始位置 |
:数字 | 将光标移动到输入的数字所在的行 |
2.插入模式
光标的移动
指令 | 指令功能介绍 |
---|---|
O | 在光标的上一行进入插入模式 |
o | 在光标的下一行进入插入模式 |
A | 在光标所在行的行尾进入插入模式 |
a | 在光标所在的下一个字符处进入插入模式 |
I | 在光标所在行的行首进入插入模式 |
i | 在光标所在的位置进入插入模式 |
S | 删除光标所在的一行并进入插入模式 |
s | 删除光标所在位置的字符并进入插入模式 |
3.退出模式
指令 | 指令功能介绍 |
---|---|
:q | 进入文件并未做任何修改时的退出 |
:q! | 进入文件做了修改但并不想保存修改的强制退出 |
:wq | 进入文件做了相应修改且保存了的保存退出操作 |
:wq! | 如果文件设置的只读模式,使用‘:wq’就不能保存并退出,因此使用‘:wq!’强制退出并保存 |
【注意】文件为只读文件,使用’:wq!'退出并保存文件时,必须要求是当前用户的文件,或者当前操作的用户是超级用户。