Logo Vincent
返回文章列表

Claude Code /vim:在 AI 编程助手里用 Vim 键位

Claude
Claude Code /vim:在 AI 编程助手里用 Vim 键位

什么是 /vim

如果你是 Vim 用户,你的手指已经形成了肌肉记忆——hjkl 移动光标、dd 删行、ciw 替换单词、Esc 回到 NORMAL 模式。

在 Claude Code 的输入框里,默认是标准的 readline 键位。每次想移动光标都要去够方向键,想删一个词要按好几下退格键——对 Vim 用户来说,这很难受。

/vim 把 Claude Code 的输入框变成一个迷你 Vim 编辑器。 INSERT 模式下正常打字,按 Esc 切到 NORMAL 模式后就可以用 Vim 键位操作文本。

怎么用

/vim

一个简单的开关。输入后 Vim 模式开启,再输入一次就关闭。

开启后你会看到提示:

Editor mode set to vim. Use Escape key to toggle between INSERT and NORMAL modes.

这个设置是全局的,会持久保存到配置中——下次启动 Claude Code 仍然是 Vim 模式。

两种模式

INSERT 模式

  • 和普通输入一样,打字直接输入到文本框
  • 输入框左下角显示 -- INSERT --
  • Esc 切换到 NORMAL 模式

NORMAL 模式

  • 按键不会输入文字,而是执行 Vim 命令
  • -- INSERT -- 标识消失
  • i / a / o 等键回到 INSERT 模式
  • Enter 直接发送当前内容(和普通模式一样)

启动后默认进入 INSERT 模式,所以不会影响你立即开始打字。

支持的 Vim 键位

移动

按键作用
h / l左 / 右移动一个字符
j / k下 / 上移动一行(逻辑行)
gj / gk下 / 上移动一行(显示行)
w / b下一个 / 上一个单词开头
e当前单词末尾
W / B / E同上,但以空白为分隔(WORD)
0行首
^行首第一个非空字符
$行尾
gg文本开头(或第 N 行)
G文本末尾(或第 N 行)
方向键在 NORMAL 模式下映射为 hjkl

查找

按键作用
f{字符}向前找字符(光标停在字符上)
F{字符}向后找字符
t{字符}向前找字符(光标停在字符前)
T{字符}向后找字符(光标停在字符后)
;重复上次查找
,反向重复上次查找

操作符

操作符可以和移动、文本对象、数字前缀组合使用——这就是 Vim 的”语法”:

按键作用
d删除
c修改(删除 + 进入 INSERT)
y复制(yank)

组合示例:

  • dw —— 删除到下一个单词
  • d2w —— 删除到后面第 2 个单词
  • c$ —— 从光标修改到行尾
  • yy —— 复制整行
  • 3dd —— 删除 3 行

行操作

按键作用
dd删除整行
cc修改整行
yy复制整行
D从光标删除到行尾(= d$
C从光标修改到行尾(= c$
Y复制整行
>>缩进(2 个空格)
<<反缩进
J合并行

字符操作

按键作用
x删除光标下的字符
r{字符}替换光标下的字符
~切换大小写

文本对象

文本对象在操作符后使用,i 表示”内部”,a 表示”包含边界”:

按键范围
iw / aw单词
iW / aWWORD(空白分隔)
i" / a"双引号内
i' / a'单引号内
i` / a`反引号内
i( / a(圆括号内
i[ / a[方括号内
i{ / a{花括号内
i< / a<尖括号内

组合示例:

  • ciw —— 修改整个单词
  • di" —— 删除双引号内的内容
  • da( —— 删除括号及其内容
  • yi{ —— 复制花括号内的内容

模式切换

按键作用
i在光标前插入
I在行首非空字符前插入
a在光标后插入
A在行尾插入
o在下方新开一行并插入
O在上方新开一行并插入
Esc回到 NORMAL 模式

其他

按键作用
p粘贴(光标后,自动识别行级粘贴)
P粘贴(光标前)
.重复上次修改(dot-repeat)
u撤销
?帮助快捷键(NORMAL 空闲时)
1-9数字前缀,重复后续操作

不支持的 Vim 功能

为了在终端输入框的场景下保持简洁,以下 Vim 功能没有实现

  • /? 搜索(输入框内搜索意义不大)
  • Visual 模式(v / V / Ctrl-V)
  • 宏录制(q
  • 标记(m
  • 具名寄存器("
  • Ex 命令(:
  • % 括号匹配跳转
  • * / # 单词搜索
  • Ctrl-R 重做
  • Ctrl-U / Ctrl-D 半页滚动

这些功能在完整的 Vim 编辑器中很有用,但在 Claude Code 的输入框场景下并不是必需的。

作用范围

Vim 模式只影响输入框。具体来说:

  • Claude 的回复内容、工具调用结果、对话历史展示等所有其他 UI 完全不受影响
  • 你不能用 Vim 键位来滚动对话历史或选择输出文本
  • Ctrl 组合键(Ctrl+C、Ctrl+D 等)在两种模式下都正常工作
  • Enter 在 NORMAL 模式下仍然是发送消息

实用技巧

技巧一:多行输入时 Vim 更舒服

当你需要输入一段较长的 prompt,尤其是多行内容时,Vim 模式的优势就体现出来了。o 新开一行、dd 删掉不想要的行、ciw 快速替换一个词——比用方向键和退格键高效得多。

技巧二:dot-repeat 是杀手锏

. 键重复上次修改操作。比如你用 ciw 改了一个变量名,移动到下一个相同的变量名再按 .,立即执行相同的替换。在输入框里写复杂 prompt 时非常实用。

技巧三:文本对象处理引号和括号

写 prompt 时经常需要修改引号或括号内的内容。ci" 一键清空双引号内容并进入 INSERT 模式、da( 一键删除括号及其内容——这些文本对象操作在编辑 JSON 示例或代码片段时特别好用。

技巧四:数字前缀批量操作

3dd 删除 3 行、5j 向下移动 5 行——数字前缀让你跳过逐步操作,直达目标位置。数字上限是 10000,不用担心意外输入大数字导致卡死。

技巧五:不习惯可以随时关

如果你发现 Vim 模式不适合你,或者在某些场景下想切回普通模式,随时输入 /vim 就能关闭。设置是持久的,但切换是即时的。

写在最后

/vim 不是一个”功能”,而是一种”尊重”——尊重你多年养成的编辑习惯。

对于非 Vim 用户,这个命令可能毫无吸引力。但对于 Vim 用户来说,能在 Claude Code 里用熟悉的 hjklciwdd. 来编辑 prompt,就像在自己的编辑器里一样自然。

肌肉记忆不需要重新训练,工具应该适应你,而不是反过来。

更多同类文章

© 2026 vincentqiao.com . 保留所有权利。