vim 常用操作
编辑模式
通过 i
命令进入编辑模式
i
在当前光标所在位置进入编辑模式I
在当前行的第一个字符进入编辑模式a
在当前光标所在位置的下一个字符进入编辑模式A
在当前行的最后一个字符进入编辑模式o
在当前行的下一行插入一个新行,并进入编辑模式O
在当前行的上一行插入一个新行,并进入编辑模式
也可通过
A
命令进入仅添加编辑模式,此时光标在当前字符的后面,无法进行删除操作。
命令模式模式
按ESC
键退出编辑模式,这时是命令模式。
保存退出
:q
退出 vim:q!
强制退出 vim 不保存:w
保存修改:wq
保存修改并退出
移动光标
通过 h
j
k
l
键移动光标,分别对应左、下、上、右
0
移动光标到行首$
移动光标到行尾gg
移动光标到文件首G
移动光标到文件尾nG
移动光标到第 n 行, 如10G
移动光标到第 10 行n+
光标向下移动 n 行, 如10+
光标向下移动 10 行n-
光标向上移动 n 行, 如10-
光标向上移动 10 行n<space>
光标向右移动 n 个字符, 如10<space>
光标向右移动 10 个字符n<enter>
光标向下移动 n 行, 如10<enter>
光标向下移动 10 行w
光标向右移动一个单词,注记:word
b
光标向左移动一个单词,注记:back
e
光标向右移动到单词结尾,注记:end
删除
字符删除
x
删除光标所在位置的字符X
删除光标所在位置的前一个字符
单词删除
dw
删除光标所在位置到下一个单词开头的字符,包括空格 (注记:delete word
)db
删除光标所在位置到上一个单词开头的字符,包括空格 (注记:delete back
)de
删除光标所在位置到下一个单词结尾的字符 (注记:delete end
)dd
删除光标所在行d$
删除光标所在位置到行尾的字符%d
全部删除删除命令都会将删除的内容存入剪贴板,可以通过下文的粘贴命令将剪贴板的内容粘贴到文件中。
复制粘贴
yy
复制光标所在行yw
复制光标所在位置到下一个单词开头的字符,包括空格 (注记:yank word
)p
粘贴剪贴板内容到光标所在行的下一行 (注记:paste
)P
粘贴剪贴板内容到光标所在行的上一行
还可以使用 v
进入可视模式,然后使用 h
j
k
l
键移动光标,选中一段文本,然后按 y
复制选中的文本,再根据需要使用 p
或 P
粘贴。(有点像鼠标拖拽选中文本,然后复制粘贴)
撤销重做
u
撤销上一次操作Ctrl + r
重做被撤销的操作,或者说撤销撤销操作U
撤销对整行的修改.
重复上一次修改
查找替换
查找字符
/word
查找 word 字符串,按n
查找下一个,按N
查找上一个,如果想逆向查找,可以使用?word
命令:set ic
查找时忽略大小写 (ignore case):set is
查找时显示匹配的字符串 (ignore case):set hls
查找时高亮显示匹配的字符串 (highlight search)
查找括号匹配
%
查找括号匹配,如()
[]
{}
,光标放在括号上,按%
可以跳转到匹配的括号上:set showmatch
设置括号匹配高亮
替换
r
按下 r 后输入一个字符,将光标所在位置的字符替换为输入的字符R
按下 R 后进入替换模式,每输入一个字符,将光标所在位置的字符替换为输入的字符,并向右移动一个字符。按ESC
退出替换模式ce
删除光标所在位置到下一个单词结尾的字符,并进入编辑模式c$
删除光标所在位置到行尾的字符,并进入编辑模式:s/old/new
将当前行第一个 old 替换为 new:s/old/new/g
将当前行所有 old 替换为 new (其中g
为 global 的意思):%s/old/new/g
将所有行所有 old 替换为 new:%s/old/new/gc
将所有行所有 old 替换为 new,替换前询问是否替换 (其中c
为 confirm 的意思):n1,n2s/old/new/g
将第 n1 行到第 n2 行所有 old 替换为 new
命令数字量化
vim 指令中很多命令都可以量化,如删除字符, 删除行,向某个方向移动光标等,可以量化为删除多少个字符,删除多少行,向某个方向移动多少个字符等。对于这些命令,可以在命令前加上数字,如 10dd
删除 10 行,10w
向右移动 10 个单词,10b
向左移动 10 个单词,10e
向右移动 10 个单词到单词结尾,10+
光标向下移动 10 行,10-
光标向上移动 10 行,10<space>
光标向右移动 10 个字符,10<enter>
光标向下移动 10 行。
执行外部命令
可以通过 :!command
执行外部命令,如 :!ls
执行 ls
命令,:!date
执行 date
命令。这样可以在 vim 中执行外部命令,执行完后会返回 vim,不会退出 vim。
状态命令
Ctrl + g
显示当前编辑文件的状态,包括文件名,文件状态,总行数,当前行号,光标位置百分比,当前所处列号。:set number
显示行号
vim 常用操作
http://example.com/2024/08/27/vim-常用操作/