vim详解(2)主要分享一些vim的文本插入、删除、复制、剪切、粘贴与替换等内容。
文本的插入操作
i: 在当前光标的前面插入字符
a: 在当前光标的后面追加字符
o: 在当前光标的下一行行首插入字符
I:在一行的开头添加文本
A:在一行的结尾处添加文本
O:在光标当前行的上一行插入文本
s:删除当前光标处的字符并进入到插入模式
S:删除光标所在处的行,并进入到插入模式
u: 撤销修改
文本删除
字符删除
x: 删除当前光标所在处的字符
X:删除当前光标左边的字符
单词删除
dw: 删除一个单词(从光标处到空格)
daw: 删除光标所在的整个单词(包括空白字符)
diw: 删除整个单词文本,但是保留空格字符不删除
d2w: 删除从当前光标开始处的 2 个单词
d$: 删除从光标到一行末尾的整个文本
d0: 删除从光标到一行开头的所有单词
dl: 删除当前光标处的字符=x
dh: 删除当前光标左边的字符=X
行删除
dd: 删除当前光标处的一整行=D
5dd: 删除从光标开始处的 5 行代码
dgg: 删除从光标到文本开头
dG: 删除从光标到文本结尾
行合并
J:删除一个分行符,将当前行与下一行合并
文本复制、剪切与粘贴
y: 复制,p:粘贴
yw: 复制一个单词
y2w: 复制 2 个单词
y$: 复制从当前光标到行结尾的所有单词
y0: 复制从当前光标到行首的所有单词
yy: 复制一整行
2yy: 复制从当前光标所在行开始的 2 行
复制文本块
1.首先进入 visual 模式:v
2.移动光标选择文本
3.复制与粘贴的操作
文本修改与替换
cw: 删除从光标处到单词结尾的文本并进入到插入模式
cb: 删除从光标处到单词开头的文本并进入到插入模式
cc: 删除一整行并进入到插入模式
~: 修改光标下字符的大小写
r: 替换当前光标下的字符
R:进入到替换模式
xp: 交换光标和下一个字符
文本查找与替换
字符串查找
/string 正向查找
?string 反向查找
设置高亮显示
:set hls
*按键将当前光标处的单词高亮显示
使用 n 浏览下一个查找高亮的结果
-
字符串替换
-
:s/old/new 将当前行的第一个字符串 old 替换为 new
-
:s/old/new/g 将当前行的所有字符串 old 替换为 new
:90s/old/new/g 将指定行的所有字符串 old 替换为 new
:90,93s/old/new/g 将 90 到 93 行的所有字符串 old 替换为 new
:%s/old/new/g 将文本中所有的字符串 old 替换为 new
:%s/old/new/gc 依次替换每个字符串关键字
:%s/^struct/int/g 将所有以 struct 开头的字符串替换为 int
修改的撤销、重做和保存
u:修改的撤销、重做和保存
Ctrl+r: 将原来的插销重做一遍
U:恢复一整行原来的面貌(文件打开时的文本状态)
q: 若文件没有修改,直接退出
q!: 文件已经被修改,放弃修改退出
wq: 文件已经被修改,保存修改并退出
e!: 放弃修改,重新回到文件打开时的状态
组合命令使用
更改 删除 复制 从光标位置到…
cH dH yH 屏幕顶端
cL dL yL 屏幕低端
c+ d+ y+ 下一行
c5| d5| y5| 本行的第 5 列
2c) 2d) 2y) 往下第 2 个句子
c{ d{ y{ 上一段
cG dG yG 文件结尾
c13G d13G y13G 第 13 行