终端 > 内置代码编辑器
代码编辑器 Vim 键绑定
# 代码编辑器 Vim 键绑定 Warp 的内置代码编辑器支持原生 Vim 键绑定,用于驱动键盘导航和编辑。启用 Vim 模式可直接在 Warp 中使用熟悉的动作、文本对象、可视模式、寄存器和编辑命令,无需切换到外部编辑器。 ## 关于 Vim 键绑定 Vi 系列程序(包括 Vim 和 Neovim)是模态文本编辑器,允许通过键盘驱动文本编辑。Vi 风格的键绑定因其在导航和操作代码方面的高速和精确而在开发人员中特别受欢迎。Warp 的 [代码编辑器](/code/code-editor/) 现在包括对 Vim 键绑定(也称为 Vim 模式)的原生支持,在您的编码工作流程中直接提供熟悉的编辑体验。 ### 如何启用 Vim 键绑定 代码编辑器中的 Vim 模式使用与输入编辑器相同的设置开关。要启用: * 通过 [命令面板](/terminal/command-palette/),搜索“Vim 键绑定”。 * 通过 **设置** > **功能** > **文本编辑**,切换“使用 Vim 键绑定编辑代码和命令”。 与输入编辑器不同,代码编辑器中的 Vim 实现从普通模式 (Normal mode) 开始。  ### 自定义键绑定 目前,Warp 仅支持默认的 Vim 键绑定。一个例外是退出插入模式的快捷键,它可以在 **设置** > **键盘快捷键** > **退出 Vim 插入模式** 下重新绑定,或者通过 [命令面板](/terminal/command-palette/) 搜索“退出 Vim 插入模式”。 ## 支持的键绑定 以下是迄今为止在 Warp 中实现的 Vim 功能列表。 ### 移动 有关详细信息,请参阅 [Vim 文档:移动](https://vimdoc.sourceforge.net/htmldoc/motion.html)。 #### 基础 | 命令 | 说明 | | ---------------------------- | --------------------------------------------------- | | `h`, `j`, `k`, `l` | 单字符移动 | | `<space>`, `<backspace>` | 带换行的单字符移动 | | `w`, `W`, `b`, `B`, `e`, `E` | 单词移动 | | `ge`, `gE` | 上一个单词的末尾 | | `$` | 行尾 | | `0` | 行首 | | `^` | 行内第一个非空白字符 | | `%` | 跳至匹配的括号 | | `[`, `]` | 上一个/下一个不匹配的括号 | | `_` | 当前行的行首 | | `+` | 下一行第一个非空白字符 | | `-` | 上一行第一个非空白字符 | | `{`, `}` | 上一个/下一个段落 | #### 多行相关 | 命令 | 说明 | | ---------- | ----------------------- | | `gg`, `G` | 跳转到第一行/最后一行 | ### 编辑 | 命令 | 说明 | | ---------- | ----------------------------------------------------------- | | `r` | 替换光标下的字符 | | `d`, `D` | 删除一个范围或对象 | | `c`, `C` | 修改一个范围或对象(删除,然后进入插入模式) | | `s`, `S` | 替换(类似于修改,但只能删除光标所在位置) | | `x`, `X` | 删除光标下的字符 | | `y`, `Y` | 抽出(复制)到剪贴板 | | `p`, `P` | 从剪贴板粘贴 | | `u`, `⌃r` | 撤销、重做 | | `~` | 切换光标下的字符大小写 | | `gu` | 将光标下的字符变为小写(可视模式下为 `u`) | | `gU` | 将光标下的字符变为大写(可视模式下为 `U`) | | `J` | 合并当前行和下一行 | | `.` | 重复上次编辑 | | `gcc` | 切换当前行的注释 | | `gc` | 切换可视模式选中内容的注释 | 有关详细信息,请参阅 [Vim 文档:编辑](https://vimdoc.sourceforge.net/htmldoc/editing.html)。 #### 文本对象 | 命令 | 说明 | | ---------------- | ------------------------------------------ | | `i` | 内部(不包括文本对象中的定界符) | | `a` | 环绕(包括文本对象中的定界符) | | `w`, `W` | 空白分隔的字符串(单词) | | `"`, `'`, \`\`\` | 引号分隔的字符串 | | `(`, `{`, `[` | 括号分隔的字符串 | 有关详细信息,请参阅 [Vim 文档:文本对象](https://vimdoc.sourceforge.net/htmldoc/motion.html#text-objects)。 ### 搜索 #### 字符搜索 | 命令 | 说明 | | ------------------ | ------------------------------------------------------ | | `t`, `T`, `f`, `F` | 在行内查找下一个/上一个匹配的字符 | | `;` | 以相同方向重复上一次字符搜索 | | `,` | 以相反方向重复上一次字符搜索 | 有关详细信息,请参阅 [Vim 文档:左右移动](https://vimdoc.sourceforge.net/htmldoc/motion.html#f)。 #### 通用搜索 与 Vim 不同,通用搜索命令不会在缓冲区内搜索。相反,它们会打开 Warp 的原生命令搜索。 | 命令 | 说明 | | ------------------ | ------------------------ | | `/`, `?`, `*`, `#` | 打开 Warp 命令搜索 | ### 模式切换 | 命令 | 说明 | | ---------- | ----------------------------------------------------------------- | | `i` | 在光标前插入文本 | | `I` | 在行内第一个非空白字符前插入文本 | | `a` | 在光标后追加文本 | | `A` | 在行尾追加文本 | | `o` | 在光标下方开启新行并插入文本 | | `O` | 在光标上方开启新行并插入文本 | | `v` | 可视字符模式 | | `V` | 可视行模式 | 有关详细信息,请参阅 [Vim 文档:插入](https://vimdoc.sourceforge.net/htmldoc/insert.html#insert) 和 [Vim 文档:可视模式](https://vimdoc.sourceforge.net/htmldoc/visual.html#visual-mode)。 ### 寄存器 | 命令 | 说明 | | ---------- | --------------- | | `"` | 寄存器前缀 | Warp 目前支持以下寄存器: | 寄存器名称 | 说明 | | ---------------- | ---------------------------------------------------------------- | | `a`–`z`, `A`–`Z` | 命名寄存器 | | `+` | 系统剪贴板 | | `*` | 系统剪贴板 | | `"` | 未命名寄存器,包含上次删除或抽取的文本 | 有关详细信息,请参阅 [Vim 文档:寄存器](https://vimdoc.sourceforge.net/htmldoc/change.html#registers)。 ## 反馈 报告错误和请求功能的最佳方式是通过 Warp 的 [GitHub Issues](https://github.com/warpdotdev/Warp/issues) 页面。请注明该问题或请求是针对 Vim 键绑定的。在 Warp 的代码编辑器中使用 Vim 键绑定进行键盘驱动的导航和编辑。
Warp 的内置代码编辑器支持原生 Vim 键绑定,用于驱动键盘导航和编辑。启用 Vim 模式可直接在 Warp 中使用熟悉的动作、文本对象、可视模式、寄存器和编辑命令,无需切换到外部编辑器。
关于 Vim 键绑定
标题为“关于 Vim 键绑定”的章节Vi 系列程序(包括 Vim 和 Neovim)是模态文本编辑器,允许通过键盘驱动文本编辑。Vi 风格的键绑定因其在导航和操作代码方面的高速和精确而在开发人员中特别受欢迎。Warp 的 代码编辑器 现在包括对 Vim 键绑定(也称为 Vim 模式)的原生支持,在您的编码工作流程中直接提供熟悉的编辑体验。
如何启用 Vim 键绑定
标题为“如何启用 Vim 键绑定”的章节代码编辑器中的 Vim 模式使用与输入编辑器相同的设置开关。要启用:
- 通过 命令面板,搜索“Vim Keybindings”。
- 通过 设置 > 功能 > 文本编辑,切换“使用 Vim 键绑定编辑代码和命令”。
与输入编辑器不同,代码编辑器中的 Vim 实现从普通模式 (Normal mode) 开始。
自定义键绑定
标题为“自定义键绑定”的章节目前,Warp 仅支持默认的 Vim 键绑定。
一个例外是退出插入模式的键盘快捷键,它可以在 设置 > 键盘快捷键 > 退出 Vim 插入模式 下重新绑定,或者通过 命令面板 搜索“Exit Vim Insert Mode”。
支持的键绑定
标题为“支持的键绑定”的章节以下是迄今为止在 Warp 中实现的 Vim 功能列表。
光标移动
标题为“移动”的章节有关详细信息,请参阅 Vim 文档:移动。
| 命令 | 说明 |
|---|---|
h, j, k, l | 单字符移动 |
<space>, <backspace> | 带换行的单字符移动 |
w, W, b, B, e, E | 单词移动 |
ge, gE | 上一个单词的末尾 |
$ | 行尾 |
0 | 行首 |
^ | 行内第一个非空白字符 |
% | 跳转到匹配的括号 |
[, ] | 上一个/下一个不匹配的括号 |
_ | 当前行的行首 |
+ | 下一行第一个非空白字符 |
- | 上一行第一个非空白字符 |
{, } | 上一个/下一个段落 |
多行相关
标题为“多行相关”的章节| 命令 | 说明 |
|---|---|
gg, G | 跳转到第一行/最后一行 |
| 命令 | 说明 |
|---|---|
r | 替换光标下的字符 |
d, D | 删除一个范围或对象 |
c, C | 修改一个范围或对象(删除,然后进入插入模式) |
s, S | 替换(类似于修改,但只能删除光标所在位置) |
x, X | 删除光标下的字符 |
y, Y | 抽出(复制)到剪贴板 |
p, P | 从剪贴板粘贴 |
u, ⌃r | 撤销、重做 |
~ | 切换光标下的字符大小写 |
gu | 将光标下的字符变为小写(可视模式下为 u) |
gU | 将光标下的字符变为大写(可视模式下为 U) |
J | 合并当前行和下一行 |
. | 重复上次编辑 |
gcc | 切换当前行的注释 |
gc | 切换可视模式选中内容的注释 |
有关详细信息,请参阅 Vim 文档:编辑。
文本对象
标题为“文本对象”的章节| 命令 | 说明 |
|---|---|
i | 内部(不包括文本对象中的定界符) |
a | 环绕(包括文本对象中的定界符) |
w, W | 空白分隔的字符串(单词) |
", ', ``` | 引号分隔的字符串 |
(, {, [ | 括号/方括号分隔的字符串 |
有关详细信息,请参阅 Vim 文档:文本对象。
字符搜索
标题为“字符搜索”的章节| 命令 | 说明 |
|---|---|
t, T, f, F | 在行内查找下一个/上一个匹配的字符 |
; | 以相同方向重复上一次字符搜索 |
, | 以相反方向重复上一次字符搜索 |
有关详细信息,请参阅 Vim 文档:左右移动。
通用搜索
标题为“通用搜索”的章节与 Vim 不同,通用搜索命令不会在缓冲区内搜索。相反,它们会打开 Warp 的原生命令搜索。
| 命令 | 说明 |
|---|---|
/, ?, *, # | 打开 Warp 命令搜索 |
模式切换
标题为“模式切换”的章节| 命令 | 说明 |
|---|---|
i | 在光标前插入文本 |
I | 在行内第一个非空白字符前插入文本 |
a | 在光标后追加文本 |
A | 在行尾追加文本 |
o | 在光标下方开启新行并插入文本 |
O | 在光标上方开启新行并插入文本 |
v | 可视字符模式 |
V | 可视行模式 |
有关详细信息,请参阅 Vim 文档:插入 和 Vim 文档:可视模式。
寄存器
标题为“寄存器”的章节| 命令 | 说明 |
|---|---|
" | 寄存器前缀 |
Warp 目前支持以下寄存器
| 寄存器名称 | 说明 |
|---|---|
a–z, A–Z | 命名寄存器 |
+ | 系统剪贴板 |
* | 系统剪贴板 |
" | 未命名寄存器,包含上次删除或抽取的文本 |
有关详细信息,请参阅 Vim 文档:寄存器。
报告错误和请求功能的最佳方式是通过 Warp 的 GitHub Issues 页面。请注明该问题或请求是针对 Vim 键绑定的。