939 字
5 分钟
Vim 常用命令总结

主目录:返回主目录#

这里包含了常用的Vim命令,忘了随时来找。

光标移动类命令#

k 向上移动光标
j 向下移动光标
h 向左移动光标
l 向右移动光标
前面加数字可以移动多位

w 将光标向后移动一个单词(词首)
e 将光标向后移动一个单词(词尾)
b 将光标向前移动一个单词
前面加数字可以移动多位

0 将光标移动到行首
$ 将光标移动到行尾

gg 将光标移动到文件第一行
G 将光标移动到文件最后一行

Ctrl+d 向下翻页
Ctrl+u 向上翻页


文本编辑类命令#

插入文本#

i 在光标首插入
a 在光标尾插入
I 在行首插入
A 在行尾插入

p 插入复制/剪切的文本
普通复制/剪切会直接在光标后插入
整行复制/剪切新建一行插入(P 可以在上一行插入)

o 在光标所在行下方打开新的一行并进入插入模式
O 在光标所在行上方打开新的一行并进入插入模式

修改文本#

r 替换字符
R 相当于Ins模式

c+w/e/$

剪切/删除文本#

x 剪切当前字符

d 用于剪切选中,下面是无选中时的搭配按键:

  • +w 从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符。也可以 w 前面加数字。
  • +e 从当前光标当前位置直到单词末尾,包括最后一个字符。也可以 e 前面加数字。
  • +$ 从当前光标到行末。

v 模式下选中文本后按 d 可以剪切

事实上,使用 c 也可以进行剪切,不过会直接进入插入模式。

dd 剪切当前行,前面可以加数字。
d+number+j/k 也可以剪切行。


查找替换类命令#

/your text+Enter 查找,n 跳到下一个匹配项,N 跳到上一个匹配项。

在一行内替换头一个字符串 old 为新的字符串 new,请输入 :s/old/new
在一行内替换所有的字符串 old 为新的字符串 new,请输入 :s/old/new/g
在两行内替换所有的字符串 old 为新的字符串 new,请输入 :#,#s/old/new/g
在文件内替换所有的字符串 old 为新的字符串 new,请输入 :%s/old/new/g
进行全文替换时询问用户确认每个替换需添加 c 标志 :%s/old/new/gc


补充命令#

:q 退出
:q! 不保存强制退出
:w 保存
:wq 保存并退出

u 撤销
Ctrl+r 恢复

% 匹配括号

y 复制选中文本
yy 复制当前行
y+number+j/k 也很好用

Ctrl+w+h/j/k/l 切换窗口

; 重复上一个操作


VSCode中Vim模式的配置#

安装Vim插件后使用命令 :set relativenumber 显示相对行号(VSCode已经默认选择开启绝对行号 :set number

为了关闭一些烦人的黄线警告,工作区根目录下新建 ./vscode/settings.json,然后写入:

{
"markdownlint.config": {
// 忽略"必须以一级标题开头"的规则 (MD041)[reference:3]
"MD041": false,
// 忽略"禁止内联HTML"的规则 (MD033)[reference:4]
"MD033": false,
// 或者,只为MD033指定一个允许使用的HTML元素列表[reference:5]
// "MD033": {
// "allowed_elements": ["details", "summary", "div"]
// }
// 忽略规则MD012
"MD012": false,
"MD040": false
}
}

可以随时添加要忽略的项目。

还需要配置一下Vim插件的设置,打开Vim插件的设置界面,搜索 insert mode key bindings,找到设置,插入以下内容:

"vim.insertModeKeyBindings": [
{
"before": ["j", "k"],
"after": ["<Esc>"]
}
]
Vim 常用命令总结
https://laplacan.icu/posts/archlinux-guide/vim/
作者
LapLacan
发布于
2026-05-28
许可协议
CC BY-NC-SA 4.0