vi 是 Linux 常用的编辑器,本文记录了 vi 的基本操作。
三种模式
命令模式
用 vi 打开一个文件即进入命令模式输入模式
a i o 进入输入模式
- a 光标后输入
- i 光标前输入
- o 光标下一行输入
- A 光标所在行的行尾输入
- O 光标所在行的上一行新建一行
- esc退回到命令模式
- 末行模式
- : 进入末行模式
- esc返回命令模式
光标移动
行内跳转
home 或者 $ 跳转行首
end 或者 ^ 跳转行尾行间跳转
末行模式输入set nu
显示行数命令模式
#gg
跳转到#行,#代表数字G
跳转到行尾gg
跳转到行首末行模式
:#
跳转到#行,#代表数字
复制
- 命令模式
#yy
从光标所在行开始,往下复制#行 - 末行模式
:#y
复制第#行:m,ny
复制从第m行到第n行
粘贴
p
光标后粘贴P
光标前粘贴
删除
命令模式
x或者del
删除光标所在字符#dd
删除从光标所在行开始,往下数#行末行模式
:#d
删除第#行:m,nd
删除从第m行到第n行
剪切
删除 + 粘贴
查找
命令模式
/word
从上往下查找word,小写n,查找下一个匹配的
?word
从下往上查找word,大写N,查找上一个匹配的
替换
末行模式
:s/old/new
将光标所在行,满足的第一个old替换成new
:s#old#new
:s/old/new/g
光标所在行的所有old替换成new
:s#old#new#g
:m,ns/old/new
第m行到第n行,每行第一个满足的old替换成new
:%s/old/new/g
全文替换
:%s#old#new#g
写入文件
末行模式
:r /root/test.txt
在光标下一行写入文件/root/test.txt
保存退出
- 末行模式
:wq
:x - 命令模式
ZZ
其他退出
- 强制退出
:q! - 强制保存退出
:wq! - 正常退出
:q