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 / aW | WORD(空白分隔) |
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 里用熟悉的 hjkl、ciw、dd、. 来编辑 prompt,就像在自己的编辑器里一样自然。
肌肉记忆不需要重新训练,工具应该适应你,而不是反过来。
更多同类文章
- 我做了个机器人,让团队在飞书里用 Claude Code
- Claude Code /fast:同样的 Opus,两倍速——值不值?
- Claude Code /init:10 秒自动生成 CLAUDE.md
- Claude Code MCP:让 AI 连接 GitHub、数据库等一切工具
- Claude Code /model:Opus、Sonnet、Haiku 怎么选?
- Claude Code 使用指南:从安装到实战,一篇就够(2026)
- Claude 全家桶:从聊天到写代码到自动办公,一文讲清楚
- CCBot - 研发提效 24 倍
- 震惊!程序员用这个工具,4分钟干完95分钟的活!效率暴涨24倍
- Claude Code /add-dir:被低估的 Monorepo 神器
- Claude Code /compact:释放上下文,不丢进度
- Claude Code /btw 命令详解:不打扰主线的快问快答
- Claude Code /stats:看看 AI 到底帮你写了多少代码
- Claude Code /status 命令详解:一眼看清会话全貌
- AI-first 创业公司,为什么只需要一种编程语言?
- Claude Code 引用外部知识的最佳实践:GitHub MCP + Context7
- Claude Code 省 Token 小技巧:感叹号的妙用
- Claude Code /resume 命令详解:别让对话白聊
- Claude Code /usage 命令详解:你的额度还剩多少
- Claude Code /tasks 命令详解:后台任务尽在掌控
- Claude Code Skills 详解:打造你的专属命令库
- Claude Code /plan 详解:先想清楚再动手
- Claude Code /memory 详解:让 AI 真正记住你的项目
- cc-ping:一行命令 Ping 所有 Claude Code 配置
- Claude Code /config:一文搞懂所有可调设置
- Claude Code /permissions:谁能干什么,你说了算
- Claude Code /hooks:让 AI 按你的规矩办事
- Claude Code /review:让 AI 帮你做 Code Review
- Claude Code /context:你的上下文都被什么吃了?
- Claude Code /diff:这次对话改了什么,一目了然
- Claude Code + Playwright MCP:AI 终于能"看见"页面了