vim的常见操作
复制
yank, y
-
yy:复制整行 nyy/yny
-
y^/y0:复制当前行到行头的内容
-
y$:复制当前到行尾的内容
-
yw:复制一个word nyw/ynw 复制n个word
-
yG:复制到文档结尾 nyG/ynG :删除当前光标所在行到第n行
剪切(删除)
delete, d
操作类似于复制,此处不赘述
-
dd
-
dj/dk:删除上/下一行
-
d^/d0
-
d$=D
-
dw
-
daw:删除当前字符所在单词
-
dG
-
x:删除当前光标所在字符,相当于delete
X:删除光标前一个字符,相当于backspace
nx/nX
粘贴
put, p
-
p:小写p代表贴至游标后,整行复制贴在游标下行
-
tips:
u:撤回上一个动作
ctrl + r:恢复上一个动作
.:重复上一个动作
选择
v:按行选择
ctrl+v:按块选择
全选:ggvG/ggVG (gg是为了回到文档第一行)
选中之后可按y复制或者d剪切,然后p粘贴
移动光标
-
ctrl + f:向下移动一页
-
ctrl + b:向上移动一页
-
0/home:移动到本行最前面
-
$/end:移动到本行行尾
-
G:移动到文档最后一行
-
gg:移动到文档第一行
-
nG:n为数字,移动到文档的第n行
-
n<enter>:n为数字,光标向下移动n行
-
h/j/k/l 左/上/下/右移动
-
nh/j/k/l n为数字
搜索替换
-
/<word>:向光标之下搜索字符串<word>
-
?<word>:向光标之上寻找字符串<word>
-
*:向后(下)寻找游标所在处的单词
-
#:向前(上)寻找游标所在处的单词
-
fx 找到光标后第一个为x的字符 3fd 找到光标后第三个为d的字符
F 同f,反向查找。
tips:
-
配合n/N使用向上/下继续查找要搜索的word
-
:set ignorecase 不区分大小写 :set smartcase:区分大小写
-
若想只在查找某个字符串时忽略大小写,只需在字符串前加
\c
,如:/\cword
;大小写铭感则是/\Cword
-
/word\>
表示只匹配以word为结尾的单词;/\<word
表示只匹配以word为开头的单词;/\<word\>
表示匹配完整的word
这个单词
-
-
cc:替换本行,即删除当前行并在此行插入
-
cw:替换本单词,即删除当前单词并在此插入
-
~:反转游标所在字母的大小写
-
:s/word1/word2/ 替换当前行第一个 word1为 word2
:s/word1/word2/g 替换当前行所有 word1为 word2
-
:n1,n2s/word1/word2/:在n1-n2行搜索,,每一行的第一个word1用word2替代
:n1,n2s/word1/word2/g:在n1-n2行搜索,所有word1用word2替代
-
:%s/word1/word2/(等同于 :g/word1/word2/) 替换每一行的第一个 word1为 word2
:%s/word1/word2/g(等同于 :g/word1/word2/g) 替换每一行中所有 word1为 word2
-
:.,+ns/word1/word2/g:n为数字,表示在当前行以及+n中进行替换
-
:1,$s/word1/word2/g或者:%s/word1/word2/g:第一行到最后一行搜索word1并用word2替代
-
:1,$s/word1/word2/gc或者:%s/word1/word2/gc:第一行到最后一行搜索word1并用word2替代,替代前需要用户确认是否替换
conclusion:
g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索字符串的首次出现进行替换;g 放在命令开头,表示对文档中所有包含搜索字符串的行进行替换操作。
vim 环境调整
-
:set nu/number 显示行号
-
:set nonu 不显示行号
-