vi和vim的关系:vim是vi的一个升级版本,大多linux发行版本已内置、集成vi,可直接使用,而vim需要安装。
其他linux编辑器有:Emacs、nano等。
vi编辑器有三种模式:普通模式、命令模式、插入模式。
1. 普通模式:一般在进入文件时就是该模式,在此模式中,可以通过上下左右键移动光标,可以删除字符或是删除整行,可以复制粘贴,但不能编辑。
2. 插入模式:一般模式可以复制粘贴删除,但要编辑,需按下i,I,o,O,a,A,r,R等字母,才会进入编辑模式,按下按钮后,屏幕左下方会出现INSERT或REPACE等字样,如果要回到普通模式,按Esc键。
3. 命令模式:在普通模式下输入“:”或“/”就可以将光标移到末行,在此模式中,可以搜寻数据,读取,存盘,大量字符替换,退出vi,显示行号等。按Esc键可从命令模式切换到普通模式。
普通模式操作:
光标移动:h左l右k上j下。
翻页:ctrl+f向前翻整页,ctrl+b向后翻整页。ctrl+u向前翻半页,ctrl+d向后翻半页。
^:将光标快速跳转到本行的行首字符。
$:将光标快速跳转到本行的行尾字符。
w:将光标快速跳转到当前光标所在位置的后一个单词的首字母上。
b:将光标快速跳转到当前光标所在位置的前一个单词的首字母上。
e:将光标快速跳转到当前光标所在位置的后一个单词的尾字母。
:set nu 在编辑器中显示行号。
:set nonu 取消编辑器中行号显示。
1G 跳转到文件的首行。
G 跳转到文件的末尾行。
#G 跳转到文件中的第#行。
删除操作:
x:删除光标处的单个字符。
dd:删除光标所在行。
dw:删除当前字符到单词尾(包括空格)的所有字符。
de:删除当前字符到单词尾(不包括单词尾部空格)的所有字符。
d$:删除当前字符到行尾的所有字符。
d^:删除当前字符到行首的所有字符。
J:删除光标所在行行尾的换行符,相当于合并两行为一行。
撤销操作:
u:取消最近一次的操作。
U:取消对当前行的所有操作。
ctrl+r:取消u的操作。
复制与粘贴:
yy:复制当前行整行的内容到vi缓冲区。
yw:复制当前光标到单词尾字符的内容到vi缓冲区。
y$:复制当前光标到行尾的内容到vi缓冲区。
y^:复制当前光标到行首的内容到vi缓冲区。
p:读取vi缓冲区中的内容,并粘贴到光标当前的位置(不覆盖文件已有的内容)。
进入插入模式:
i:在当前光标处进入插入状态。
a:在当前光标后进入插入状态。
A:将光标移动到当前行的行末并进入插入状态。
o:在当前行的的下面插入新行,光标移动到新行的行首,进入插入模式。
O:在当前行的上面插入新行,光标移动到新行的行首,进入插入模式。
cw:删除当前光标到所在单词尾部的字符,并进入插入状态。
c$:删除当前光标到行尾的字符,并进入插入状态。
c^:删除当前光标之前到行首的字符,并进入插入状态。
插入模式操作:
方向键:光标上下左右移动。
Home:快速定位光标到行首。
End:快速定位光标到行尾。
PageUp:进行文本的向上翻页。
PageDown:进行文本的向下翻页。
Backspace:删除光标左侧的字符。
Del:删除光标位置的字符。
命令模式操作:
字符串查找操作:
/word:从上而下在文件中查找字符串“word”。
?word:从下而上在文件中查找字符串“word”。
n:定位下一个匹配的被查找字符串。
N:定位上一个匹配的被查找字符串。
字符串替换操作:
:s/old/new:将当前行中查找到的第一个字符串“old”替换为“new”。
:s/old/new/g:将当前行中查找到的所有字符串“old”替换为“new”
:#,#s/old/new/g:在行号“#,#”范围内替换所有的字符串“old”为“new”。
:%s/old/new/g:在整个文件范围内替换所有的字符串“old”为“new”。
:s/old/new/c:在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认。
使用vi打开多个文件:
vi file1 file2 file3
Vi多文件操作命令:
:args:显示多文件信息
:next:向后切换文件
:prev:向前切换文件
:first:定位首文件
:last:定位尾文件
ctrl+^:快速切换到编辑器中切换前的文件