Vim命令
入门:Vim 的模式
Vim 是一个模式化编辑器,主要有三种常用模式:
- 普通模式(Normal/命令模式):用于移动光标、删除、复制等命令。启动 Vim 后默认进入此模式。
- 插入模式(Insert):用于输入文本,按 i、a、o 等进入插入模式,按 Esc 返回普通模式。
- 可视模式(Visual):用于选择文本(字符/行/块),按 v(字符)、V(行)、Ctrl+v(块)进入。
快捷入门:
打开文件:vim filename
保存并退出::wq 或 ZZ
不保存退出::q!
基本移动(普通模式)
h/j/k/l:左/下/上/右
w / b:按单词前进/后退
e:移动到单词末尾
0(数字零)/^/$:行首(含缩进)/第一个非空字符/行尾
G:移动到文件末尾,gg:移动到文件开头
nG 或 n%:跳到第 n 行
可带数字前缀,例如 5j 向下移动 5 行。
编辑与删除(重点)
在普通模式下,常见删除与替换命令:
x:删除当前字符
X:删除当前字符前一个字符
dw:删除到下一个单词的开头(删除单词)
d$:删除到行尾
dd:删除整行(并复制到寄存器)
d5d:删除 5 行(同 5dd)
D:等同 d$
使用可视模式删除:在普通模式按 v/V/Ctrl+v 选中区域,然后按 d 删除。
替换操作:
r<char>:替换当前字符为 <char>
R:进入替换模式,连续输入覆盖文本,按 Esc 退出
示例:删除当前行并在下一行进入插入模式
dd
o
复制(yank)与粘贴
yy 或 Y:复制整行
yw:复制一个单词
y$:复制到行尾
p:在光标后粘贴
P:在光标前粘贴
可以与数字结合使用,例如 3yy 复制三行。
撤销与重做
u:撤销
Ctrl+r:重做
搜索与替换
/pattern 回车:向下搜索 pattern
?pattern 回车:向上搜索
n:跳到下一个匹配,N:跳到上一个匹配
全局替换(示例):在整个文件将 foo 替换为 bar:
:%s/foo/bar/g
常用变体:保留确认交互:`:%s/foo/bar/gc` (每处替换前确认)。
行范围替换:`:10,20s/old/new/g` 只替换第 10 行到 20 行。
多文件、缓冲区与窗口
:e filename 打开新文件(进入缓冲区)
:bnext / :bn 切换到下一个缓冲区,:bprev / :bp 切换到上一个缓冲区
:ls 显示缓冲区列表
窗口操作(水平/垂直分割):
:split filename 或 :sp:水平分割
:vsplit filename 或 :vsp:垂直分割
Ctrl+w h/j/k/l 在分割窗格间移动
Ctrl+w = 平均分配窗口大小
标签页:
:tabnew filename 打开新标签
gt / gT 在标签间切换
宏与重复操作
录制宏:在普通模式按 q<register> 开始录制,执行一系列命令后按 q 停止。例如:
qa " 开始录制到寄存器 a
... " 执行操作
q " 停止录制
@a " 播放寄存器 a 的宏
5@a " 重复执行 5 次
宏对重复的编辑任务非常有用。
配置入门(~/.vimrc)
示例最小配置:
set number # 显示行号
set relativenumber # 相对行号
set tabstop=4 shiftwidth=4 expandtab # 将 tab 转为空格
set nowrap # 不自动换行
set clipboard=unnamedplus # 共享系统剪贴板(在支持的系统上)
syntax on # 启用语法高亮
set incsearch # 增量搜索
set ignorecase smartcase #搜索不区分大小写,除非包含大写
将上述片段放到 ~/.vimrc(或 Windows 下 _vimrc)即可生效。
常用快捷键摘要(普通模式)
i / a / o:进入插入模式(在光标前/后/新行)
Esc:回到普通模式
dd / x / dw:删除行/字符/单词
yy / p:复制行/粘贴
u / Ctrl+r:撤销/重做
/pattern:搜索,n/N:下一个/上一个
:w / :q / :wq / :q!:保存/退出
:%s/old/new/gc:全文件替换并确认
:vsp / :sp / Ctrl+w h/j/k/l:分割窗口与切换
关于删除内容的进阶注意点
- 使用寄存器保存内容:删除操作会把内容放入默认寄存器
",使用 “0 到 “9 等寄存器保存或粘贴特定内容。 - 在可视模式删除时,如果你想保留被删除内容到寄存器,可以先复制(yank)再删除。
- 如果不想覆盖默认寄存器,可在删除前指定黑洞寄存器
"_d,例如"_dd会删除不写入寄存器。
示例:将当前行删除但不影响寄存器内容:
"_dd