一、vi工作模式
vi filename -> 命令模式 -> :wq退出
输入i a o -> 插入模式 -> Esc键 -> 命令模式
命令模式 : -> 编辑模式 -> 命令以回车结束运行
二、基本使用
插入命令
a,在光标后附加文本;
A,在本行行末附加文本;
i,在光标前插入文本;
I,在本行开始插入文本;
o,在光标下插入新行;
O,在光标上插入新行
定位命令
h 方向左键,左移一个字符
j 方向下键,下移一行
k 方向上键,上移一行
l 方向右键,右移一个字符
$ 移至行尾
0 移至行首
H 移至屏幕上端
M 移至屏幕中央
L 移至屏幕下端
:set nu 设置行号
:set nonu 取消行号
gg 到第一行
G 到最后一行
nG 到第n行
:n 到第n行
删除命令
x 删除光标所在处字符
nx 删除光标所在处后n个字符
dd 删除光标所在行,ndd删除n行
dG 删除光标所在行到末尾的内容
D 删除从光标所在处到行尾
:n1,n2d 删除指定范围的行
复制和剪切命令
yy、Y 复制当前行
nyy、nY 复制当前行以下n行
dd 剪切当前行
ndd 剪切当前行以下n行
p,P 粘贴在当前光标所在行下或行上
替换和取消命令
r 取代光标所在处字符
R 从光标所在处开始替换字符,按ESC结束
u 取消上一步操作
搜索和替换命令
/string 向前搜索指定字符串搜索时忽略大小写:set ic
n 搜索指定字符串的下一个出现位置,N前一个位置
:%s/old/new/g 全文替换指定字符串
:n1,n2s/old/new /g 在一定范围内替换指定字符串
保存退出
:wq 快捷键 shift zz ZZ == :wq
:wq! 强制保存退出
:w 保存 :q 退出
:w /test/service.bak 另存为一个备份
三、应用实例
1)导入其他文件的内容
:r /test/service.bak
2)直接在vi中执行命令
!命令 !ls -l /test
3)把一个命令执行的结果直接导入到编辑文件当中
:r !date
4)vi定义快捷键
:map ^P I#<ESC> ^P ctrl+v ctrl+p 加#注释
:map ^E miniamin@yeah.net
:map ^B 0x 去掉#注释
5)连续行注释
:n1,n2s/^/#/g (^代表行首)(s指定行,%s全文)
:n1,n2s/^#//g
:n1,n2s/^/\/\//g
6)替换
:ab mymail miniamin@yeah.net
:unab mymail 取消
7)编辑vi配置文件保存配置信息
~ home directory
root /root users /home zhangsan /home/zhangsan
~/.vimrc 配置文件
来源:https://www.cnblogs.com/gimin/p/7090206.html