Vi编辑器的相关命令
vi是linux中最常用的编辑器。
首先介绍一下vi的基本概念。在vi中,存在三种模式:命令模式,插入模式,底行模式。各模式下的功能如下:
(1) 命令模式。控制光标移动,复制、粘贴操作。
(2) 插入模式。文本编辑,通过ESC回到命令模式。
(3) 底行模式。保存、退出vi,字符串查找等。
常用的vim命令有:
光标移动命令 | |
h或左方向键 | 光标向左移动一位 |
j或下方向键 | 光标向下移动一行 |
k或上方向键 | 光标向上移动一行 |
l或右方向键 | 光标向右移动一位 |
ctrl + f | 屏幕向下移动一页 |
ctrl + b | 屏幕向上移动一页 |
ctrl + d | 屏幕向下移动半页 |
ctrl + u | 屏幕向上移动半页 |
0 或 home 键 | 光标移到行首第一个字符处 |
$ 或 end 键 | 光标移到行尾最后一个字符处 |
H | 屏幕最上方一行的第一个字符处 |
M | 屏幕中间一行的第一个字符处 |
L | 屏幕最下方一行的第一个字符处 |
G | 文档最后一行 |
nG | 移动到第n行,n为行数 |
gg | 光标下移n行 |
搜索与替换 | |
/word | 从光标向下搜索word字符 |
?word | 从光标向上搜索word字符 |
n | 重复前一搜索动作 |
N | 反向进行前一搜索动作 |
:n1,n2s/word1/word2/g | 在n1和n2行之间搜索word1,并用word2 替换word1。 |
:1,$/word1/word2/g | 从第一行到最后一行,用word2替换word1 |
:1,$/word1/word2/gc | 从第一行到最后一行,搜索word1,用word2 替换word1,在替换过程中,需要人工确认confirm |
删除、复制与粘贴 | |
x | 向后删除一个字符,相当于del |
X | 向前删除一个字符,相当于backspace |
nx | 向后删除n个字符 |
dd | 删除光标所在的行 |
ndd | 删除光标所在向下n行 |
d1G | 删除光标所在到第一行的所有行 |
dG | 删除光标所在到最后一行的所有行 |
d$ | 删除光标所在处到行尾的所有字符 |
d0 | 删除光标所在处到行首的所有字符 |
yy | 复制光标所在的行 |
nyy | 复制光标向下的n行 |
nyy | 复制光标向下的n行 |
y1G | 复制光标所在列到第一列的内容 |
yG | 复制光标所在列到最后一列的内容 |
yG | 复制光标所在列到最后一列的内容 |
y0 | 复制光标所在行到第一行的内容 |
y$ | 复制光标所在行到最后一行的内容 |
p | 将复制的内容粘贴在下一行 |
P | 将复制的内容粘贴在上一行 |
u | 撤销 |
ctrl + r | 重做 |
切入到编辑模式 | |
i, I | i为从当前光标处插入,I为从当前行的第一 个非空白字符处插入 |
a,A | a为从当前光标的下一个字符处插入,A为从 当前行的最后一个字符处插入 |
o,O | o为从当前行的下方插入新行,O为从当前行 的上方插入新行 |
r,R | r为替换当前光标所在的字符,R为一直替换。 |
Esc | r为替换当前光标所在的字符,R为一直替换。 |
可用指令 | |
:w | 保存文件 |
:w! | 强制保存 |
:q | 离开vi |
:q! | 强制离开,不保存 |
:wq | 保存后离开 |
:w [filename] | 另存为新文件 |
:r [filename] | 在编辑的文件中读入另外一个文件,并将该 文件的内容追加到光标的后面 |
:n1,n2 w [filename] | 将n1-n2行的内容保存到新文件 |
:set nu | 显示行号 |
:set nonu | 关闭行号 |