终端 > 现代文本编辑
输入编辑器 Vim 快捷键
# 输入编辑器 Vim 快捷键 ## 关于 Vim 快捷键 Vi 系列程序(包括 Vim 和 Neovim)是模态文本编辑器,支持键盘驱动的文本编辑。包括 `bash` 和 `zsh` 在内的多种 Shell 都实现了 vi 风格的快捷键。Warp 的输入编辑器是原生构建的,旨在支持更现代的文本编辑体验,这意味着它取代了 Shell 原有的编辑器功能。Warp 拥有自己实现的 Vim 快捷键(也称为 Vim 模式),供您使用。 ### 如何启用 Vim 快捷键 :::note 对于 `bash` 和 `zsh`,Warp 会尝试检测 Shell 的快捷键设置。如果检测到 Shell vi 模式,Warp 可能会建议启用 Vim 快捷键(也称为 Vim 模式)。 ::: 要在 Warp 的输入编辑器中手动切换 Vim 快捷键: * 通过 [命令面板](/terminal/command-palette/),搜索“Vim Keybindings”。 * 通过 **Settings** (设置) > **Features** (功能) > **Text Editing** (文本编辑),切换“Edit commands with Vim keybindings”。 与 `bash` 和 `zsh` 的 vi 模式实现一样,编辑器以插入模式启动。按 `CTRL-C` 或 `ENTER` 可清除任何挂起的命令状态。 ### 自定义快捷键 目前,Warp 仅支持默认的 Vim 快捷键。唯一的例外是退出插入模式的键盘快捷键,该键可以在 **Settings** (设置) > **Keyboard shortcuts** (键盘快捷键) > **Exit Vim Insert Mode** 下重新绑定,或者通过 [命令面板](/terminal/command-palette/) 搜索“Exit Vim Insert Mode”进行绑定。 ## 支持的快捷键 下面列出了 Warp 目前实现的 Vim 功能。 ### 移动 请参阅 [Vim 文档:移动](https://vimdoc.sourceforge.net/htmldoc/motion.html) 以获取更多信息。 #### 基本 | 命令 | 描述 | | ---------------------------- | --------------------------------------------------- | | `h`, `j`, `k`, `l` | 单字符移动 | | `使用输入编辑器 Vim 快捷键(也称为 Vim 模式)在 Warp 中快速编辑命令。
关于 Vim 快捷键
名为“关于 Vim 快捷键”的章节Vi 系列程序(包括 Vim 和 Neovim)是模态文本编辑器,支持键盘驱动的文本编辑。包括 bash 和 zsh 在内的多种 Shell 都实现了 vi 风格的快捷键。Warp 的输入编辑器是原生构建的,旨在支持更现代的文本编辑体验,这意味着它取代了 Shell 原有的编辑器功能。Warp 拥有自己实现的 Vim 快捷键(也称为 Vim 模式),供您使用。
如何启用 Vim 快捷键
名为“如何启用 Vim 快捷键”的章节要在 Warp 的输入编辑器中手动切换 Vim 快捷键:
- 通过 命令面板,搜索“Vim Keybindings”。
- 通过 Settings (设置) > Features (功能) > Text Editing (文本编辑),切换“Edit commands with Vim keybindings”。
与 bash 和 zsh 的 vi 模式实现一样,编辑器以插入模式启动。按 CTRL-C 或 ENTER 可清除任何挂起的命令状态。
自定义快捷键
名为“自定义快捷键”的章节目前,Warp 仅支持默认的 Vim 快捷键。
唯一的例外是退出插入模式的键盘快捷键,该键可以在 Settings (设置) > Keyboard shortcuts (键盘快捷键) > Exit Vim Insert Mode 下重新绑定,或者通过 命令面板 搜索“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 | 合并当前行和下一行 |
. | 重复上一次编辑 |
请参阅 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 快捷键的。