命令模式
光标定位
home | 0 #定位到行首
end | $ #定位到行尾
gg #定位到文本首行
G #定位到文本尾行
nG #定位到指定的行,n表示数字
复制
yy #复制光标所在的行
nyy #复制n行
粘贴
p #粘贴到所在行的下一行
P #粘贴到上一行
删除
x #删除光标所在字符
nx #删除n个字符,n是数字
dw #删除单词
dd #删除光标所在行
ndd #删除多行
d$ | D #删除光标所在位置至行尾内容
d^ #删除光标所在位置至行首内容
dG #删除光标所在行至文本末
dgg | d1G #删除光标所在行至文本首
撤销
u
反撤销
ctrl+r
可视块模式
可视 #批量选择文本内容,精确到具体文本
进入:v 退出:v
可视行 #以行为单位选择文本内容
进入:V 退出:V
可视块 #以长方形区域块形式选择文本内容
进入:Ctrl+v 退出Ctrl+v
可视化模式下的操作
复制 y
粘贴 p
删除 d
对标记进行动作
> 块右移
< 块左移
y 复制块
d 删除块
~ 切换块中内容的大小写
批量添加注释:
可视块模式选中àI(大写i)àEscàEsc
自动缩进:
可视行选中à =
编辑模式
a #从光标所在位置的右边插入
i #从光标所在位置的左边插入
o #从光标所在行的下面插入新的一行
r #替换光标所在字符
A #从光标所在行的行尾插入
I #从光标所在行的行首插入
O #从光标所在行的上面插入新的一行
R #一直向右替换光标所在字符,esc中断
行尾模式
命令默认敲 :
光标定位 :n
设置
取消高亮 :noh
设置行号 :set nu
取消行号 :set nonu
设置不区分大小写 :set ic
设置自动缩进 :set si
设置tab键缩进长度 :set sw=4
替换
:%s/被替换的关键字/替换的关键字/gci //替换整个文档的关键字
% 所有行
g 一行的全局
c 每一次替换需要确认 替换y 不替换n
i 不区分大小写
:%s/被替换的关键字/替换的关键字/ //替换所有行的第一个关键字
:s/被替换的关键字/替换的关键字/g //替换光标所在行的所有关键字
:s/被替换的关键字/替换的关键字/ //替换光标所在行的第一个关键字
:16,18s/被替换的关键字/替换的关键字/g //替换16至18行的关键字
:30,34s/^#// //去掉30至34行行首的#符号
:1,10s/^/#/ //在1至10行的行首添加#符号
:1,10s/$/#/ //在1至10行的行尾添加#符号
:.,$s/^/#/g //注释当前光标位置到结尾的行
删除
:15,24d //删除15至24行
:.,$d //删除光标所在行至文本的末尾 |dG
:.,+5d //删除光标所在行和之后的5行
:g/#/d //删除所有带#的行
将文本的内容追加到其他文本
:5,10w >> /opt/a.txt //将文本的5至10行保存到/opt/a.txt文件
:.,+5w >> /opt/a.txt //将光标所在行和之后的5行保存到/opt/a.txt文件
读入其他文本内容
:r //读入文本的原始内容 光标所在行的下一行
:r /etc/grub.conf //将/etc/grub.conf文件内容复制到此文本光标所在行的下一行
:nr /etc/grub.conf //将路径文件读到n行的下一行