vim cheat sheet
30. vim 删除大法
vim 删除某个字符之后改行的其他的字符?删除某行之后的其他行?删除某个字符之后的其他字符?【1】删除单个字符?
跳到要删除的字符位置
- 按下d键
- 然后按下shift + 4键
【2】删除某行之后的其他行?
按下d
按下shift + G
【3】删除某个字符之后的其他字符?(可以额拆解为)
- 按下v
- 按下shift + G
- 按下x
【4】删除单个字符?
x
【5】删除某个单词?
- 先用’b’命令把光标先移动到词首,然后执行dw删除整个单词.按键3个
- 执行反向删除命令’db’(会剩余最后的”e”字符),再执行’x’删除单个字符.按键3个
- 直接执行daw,删除单词并会删除一个空格(其他的不会),光标停留在下一个单词末尾上.按键3个(推荐使用这个,方便快捷。)
【6】删除某一行中任意字符之间的数据
如何界定之间,你来界定
看下面的例子,需求: 删除第一个双引号之间的内容
if [ "${UbuntuCheck}" ] && [ "${UbuntuCheck}" -lt "16" ];then光标移动到双引号上, dt" 即可
31、插入模式深入理解
【Normal】模式下如果需要往某行插入内容,一般是将光标移动到指定位置,然后【insert】模式插入。 这种操作是最容易理解的但并不是最优雅的。
a
→ 在光标后插入
o
→ 在当前行后插入一个新行
O
→ 在当前行前插入一个新行
cw
→ 替换从光标所在位置后到一个单词结尾的字符
32、光标移动大法
【1】%
: 匹配括号移动,包括 (
, {
, [
. (需要把光标先移到括号上)
【2】**
和 #
: 匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(是下一个,#是上一个) 对应的就是search模式的N和n。
【3】NG
→ 到第 N 行 (陈皓注:注意命令中的G是大写的,另我一般使用 : N 到第N行,如 :137 到第137行)
【4】gg
→ 到第一行。(陈皓注:相当于1G,或 :1)
【5】G
→ 到最后一行。
【6】按单词移动
w
→ 到下一个单词的开头。
e
→ 到下一个单词的结尾
【7】移动到指定字符开始的位置
fa
→ 到下一个为a的字符处,你也可以fs到下一个为s的字符。
fs
fr ….
Fa 向前移动
【8】t,
→ 到逗号前的第一个字符。逗号可以变成其它字符。
超级好用,当你观察一下这行数据,可以去到任何你想去的地方。
如果是win的话可以需要鼠标才可以完成你想到的任何一个地方。
T, 是反方向
【9】3fa
→ 在当前行查找第三个出现的a。<ninesun: 查找域为光标之后>
33、复制大法
当掌握了移动大法之后,可以使用 随意进行复制
【1】复制一个单词
ye
【2】复制一整行
不论光标处于何处
0y$
0
→ 先到行头y
→ 从这里开始拷贝$
→ 拷贝到本行最后一个字符
【3】 复制字符串之间的内容 very import
光标键在第一个 o的位置
(map (+) ("foo"))
vi"
→ 会选择 foo
.
va"
→ 会选择 "foo"
.
vi)
→ 会选择 "foo"
.
va)
→ 会选择("foo")
.
v2i)
→ 会选择 map (+) ("foo")
v2a)
→ 会选择 (map (+) ("foo"))