Vim 编辑器模式

在 Claude Code 中使用 Vim 进行高效编辑

概述

Claude Code 支持 Vim 编辑器模式,能够使用熟悉的快捷键高效编辑文本。

启用与关闭

临时启用

/vim

永久配置

/config
# 在配置界面中设置 vim 模式为 true

关闭 Vim 模式

/novim

模式切换

进入 NORMAL 模式

[在 INSERT 模式输入文本]
[按 Esc]
[进入 NORMAL 模式]

进入 INSERT 模式

命令操作说明
i在光标前插入常用方式
I在行首插入跳转行首
a在光标后插入光标后插入
A在行尾插入跳转行尾
o在下方打开新行新行插入
O在上方打开新行新行插入
gi回到上次插入位置跳转插入点
# 在 NORMAL 模式
Hello World[光标]

# 按 i 在光标前插入
Hello[光标] World

# 按 A 在行尾插入
Hello World[光标]

进入 VISUAL 模式

命令操作
v普通 VISUAL
V行 VISUAL
Ctrl+v块 VISUAL

进入 COMMAND 模式

在 NORMAL 模式按 : 进入 COMMAND 模式。

导航(NORMAL 模式)

基本移动

命令操作
h左移一个字符
j下移一行
k上移一行
l右移一个字符

单词导航

命令操作
w下一个单词开头
e当前单词末尾
b上一个单词开头
ge上一个单词末尾
W下一个空格分隔单词开头
E当前空格分隔单词末尾
B上一个空格分隔单词开头

行导航

命令操作
0行首
$行尾
^第一个非空白字符
g_最后一个非空白字符

文件导航

命令操作
gg文件开头
G文件末尾
nG第 n 行
:n第 n 行

屏幕导航

命令操作
Ctrl+u上滚半屏
Ctrl+d下滚半屏
Ctrl+b上滚一屏
Ctrl+f下滚一屏
zz当前行居中
zt当前行置顶
zb当前行置底
# 基本移动
Hello World
[按 l]  # 光标向右移动一个字符
Hello World[光标]

# 单词导航
Hello World
[按 w]  # 移动到下一个单词开头
Hello World[光标]

# 行导航
Hello World
[按 $]  # 移动到行尾
Hello World[光标]

# 文件导航
[按 gg]  # 移动到文件开头

编辑操作

删除操作

命令操作
x删除光标所在字符
X删除光标前一个字符
dw删除到下一个单词开头
de删除到当前单词末尾
d$删除到行尾
dd删除当前行
ndd删除 n 行

复制与粘贴

命令操作
yy复制当前行
nyy复制 n 行
yw复制到下一个单词开头
p光标后粘贴
P光标前粘贴

撤销与重做

命令操作
u撤销
Ctrl+r重做

替换操作

命令操作
r替换光标字符
R进入替换模式

搜索与替换

搜索

命令操作
/pattern向下搜索
?pattern向上搜索
n下一个匹配
N上一个匹配

替换

命令操作
:%s/old/new/g全局替换
:%s/old/new/gc全局替换并确认
:n,m s/old/new/g行范围替换

最佳实践

  • 熟悉 h/j/k/l 的基本移动。
  • 使用 w/e/b 等单词导航替代逐字符移动。
  • 使用数字前缀快速重复命令。
  • 组合命令提升效率,如 d2w

故障排除

  • Vim 模式不生效:确认执行 /vim 并检查配置。
  • 快捷键冲突:检查终端快捷键设置。
  • 模式切换异常:按 Esc 或 Ctrl+[ 回到 NORMAL 模式。

高级技巧

标记与跳转

命令操作
ma设置标记 a
'a跳转到标记行首
`a跳转到标记位置

宏录制

命令操作
qa开始录制到寄存器 a
q停止录制
@a执行宏
@@重复上一个宏

多文件编辑

命令操作
:e filename编辑文件
:n下一个文件
:p上一个文件
:ls列出文件
:b filename切换文件

编辑(NORMAL 模式)

删除操作

命令操作
x删除字符
dd删除行
D删除到行尾
dw删除单词
de删除到单词末尾
db向后删除单词

更改操作

命令操作
cc更改行
C更改到行尾
cw更改单词
ce更改到单词末尾
cb向后更改单词

重复操作

命令操作
.重复上次更改
# 删除字符
Hello World
[按 x]
Hllo World

# 删除行
Hello World
[按 dd]
[空行]

# 更改行
Hello World
[按 cc]
[输入新内容]

常用组合

数字前缀

# 删除 3 个字符
Hello World
[按 3x]
lo World

# 删除 2 行
Line 1
Line 2
Line 3
[按 2dd]
Line 3

删除+插入

# 删除单词并进入插入模式
Hello World
[按 cw]
[输入新单词]

使用场景

快速编辑

# 快速删除单词
function calculateTotal(items) {
[按 dw]

function (items) {

精确定位

# 跳到行尾
const result = calculateTotal(items);
[按 $]
const result = calculateTotal(items);[光标]

批量修改

# 重复修改
item1, item2, item3
[按 f, 然后 r.)]
item1. item2. item3

On this page