在职场,经常看到新人或者多年“老司机”,在使用vi编辑器时,只会简单的插入编辑并退出,不能熟练使用vi进行文本的一些常用操作,下面列举了一些操作技巧,对高效工作带来一些便利。
1. 移动光标
h 向左,j 向下,k 向上,l 向右
0 将光标定位到行首位置
$ 将光标定位到行尾位置
b 将光标定位到当前单词的开始处
e 将光标定位到当前单词的结尾处
w 将光标定位到下一个单词的开始处
gg 将光标定位到文件开头
G 将光标定位到文件结尾
2. 进入插入模式
i 当前光标左边进入插入模式,I 当前行首进入插入模式
a 当前光标右边进入插入模式,A 当前行尾进入插入模式
o 当前行新建下一行进入插入模式,O 当前行新建上一行进入插入模式
s 删除当前光标字符进入插入模式,S 删除当前行进入插入模式
3. 删除
x 删除当前光标字符
d0 删除当前光标到行首的字符,不包括当前光标字符
d$ 删除当前光标到行尾的字符,包括当前光标字符
db 删除当前光标到单词开始处的字符,不包括当前光标字符
de 删除当前光标到单词结尾处的字符,包括当前光标字符
dw 删除当前光标到下一个单词开始处的字符,包括当前光标字符
dh 删除当前光标左边的一个字符
dl 删除当前光标字符
dj 删除当前行及下一行的所有字符
dk 删除当前行及上一行的所有字符
dd 删除当前行的所有字符
dgg 删除当前行到文件开头的所有字符,包括当前行
dG 删除当前行到文件结尾的所有字符,包括当前行
4. 撤销
u 撤销最后一次修改
U 撤销对整行的修改
ctrl + r 恢复撤销的内容
5. 复制粘贴和替换
p 将内容粘贴到光标之后
P 将内容粘贴到光标之前
yy 复制当前行
y [数字] motion
r 替换当前光标字符
R 进入替换模式,当前光标字符及后面的字符奖杯新输入字符替换掉,按backspace键回退到替换前的字符
6. 修改
c [数字] motion = d [数字] motion + 进入插入模式
ctrl + g 显示文件信息
数字G 跳转到哪一行
:数字 跳转到哪一行
% 快速定位到另一半括号
7. 搜索
/搜索字符,从光标向后搜索,n到匹配的下一个,N到匹配的上一个
?搜索字符,从光标向前搜索
搜索特殊字符需要用反斜杠
:s/old/new 光标所在行的第一个old替换为new
:s/old/new/g 光标所在行所有的old都替换为new
:%s/old/new/g 文件中所有old都替换为new
:%s/old/new/gc 替换前一个个询问
:4,12s/old/new/g 第4到12行中的old替换为new
8. 编辑中执行命令
:!ls -l 查看当前目录的文件
:w newfile 文件另存为newfile
9. 退出
按esc退出到命令模式
:q! 不保存此次编辑并退出
:wq! 保存此次编辑并退出
:x! 保存此次编辑并退出