

 AWS Cloud9 不再向新客户提供。 AWS Cloud9 的现有客户可以继续正常使用这项服务。[了解详情](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Windows/Linux Vim IDE 的 Keybindings 参考 AWS Cloud9
<a name="keybindings-vim-windows-linux"></a>

此步骤说明如何选择 Windows/Linux Vim 按键绑定参考。 AWS Cloud9

1. 在菜单栏上，依次选择 **AWS Cloud9** > **Preferences（首选项）**。

1. 在 **Preferences（首选项）**选项卡上，选择 **Keybindings（键绑定）**。

1. 对于 **Keyboard Mode（键盘模式）**，选择 **Vim**。

1. 对于 **Operating System（操作系统）**，选择 **Windows/Linux**。

有关键绑定的更多信息，请参阅[使用键绑定](settings-keybindings.md)。

以下是 IDE 中适用于 Windows/Linux 操作系统的 Vim 键盘模式按键绑定列表： AWS Cloud9 
+  [一般性问题](#keybindings-vim-windows-linux-general) 
+  [选项卡](#keybindings-vim-windows-linux-tabs) 
+  [面板](#keybindings-vim-windows-linux-panels) 
+  [代码编辑器](#keybindings-vim-windows-linux-code-editor) 
+  [emmet](#keybindings-vim-windows-linux-emmet) 
+  [终端](#keybindings-vim-windows-linux-terminal) 
+  [运行和调试](#keybindings-vim-windows-linux-run-debug) 

## General
<a name="keybindings-vim-windows-linux-general"></a>


****  

| 说明 | 键绑定 | 命令 | 
| --- | --- | --- | 
| 添加选定内容作为监视表达式 |  `Ctrl-Shift-C`  |  `addwatchfromselection`  | 
| 删除剪贴板中的剪切选择 |  `Esc`  |  `clearcut`  | 
| 显示代码完成上下文菜单 |  `Ctrl-Space` \| `Alt-Space`  |  `complete`  | 
| 代码完成，然后覆盖 |  `Ctrl-Shift-Space` \| `Alt-Shift-Space`  |  `completeoverwrite`  | 
| 将选定内容复制到剪贴板中 |  `Ctrl-C`  |  `copy`  | 
| 将选定内容剪切到剪贴板中 |  `Ctrl-X`  |  `cut`  | 
| 展开代码（如果适用） |  `Tab`  |  `expandSnippet`  | 
| 显示当前文档的查找和替换栏 |  `Ctrl-F`  |  `find`  | 
| 选择当前文档中的所有查找匹配项 |  `Ctrl-Alt-K`  |  `findall`  | 
| 转至当前文档中下一处与您最后输入的查询匹配的内容 |  `Ctrl-K`  |  `findnext`  | 
| 转至当前文档中前一处与您最后输入的查询匹配的内容 |  `Ctrl-Shift-K`  |  `findprevious`  | 
| 在编辑器内活动文件中显示对插入点符号的所有已知引用 |  `Shift-F3`  |  `findReferences`  | 
| 打开 **Environment（环境）**窗口，然后使文件列表处于活动状态 |  `Shift-Esc`  |  `focusTree`  | 
| 重新格式化所选代码 JavaScript  |  `Ctrl-Shift-B`  |  `formatcode`  | 
| 显示“go to line（转到行）”框 |  `Ctrl-G`  |  `gotoline`  | 
| 如果显示查找和替换栏，则将其隐藏 |  `Esc`  |  `hidesearchreplace`  | 
| 转到光标所在位置变量或函数的定义 |  `F3`  |  `jumptodef`  | 
| 如果在 **AWS Resources（Amazon 资源）**窗口的**Lambda**的部分中选择了本地 Lambda 函数，则尝试将函数作为远程函数上传到 Lambda |  `Ctrl-Shift-U`  |  `lambdaUploadFunction`  | 
| 创建新文件 |  `Alt-N`  |  `newfile`  | 
| 显示 **Preferences（首选项）**选项卡 |  `Ctrl-,`  |  `openpreferences`  | 
| 打开 **Terminal（终端）**选项卡，然后切换到文件列表中的选定文件的父文件夹 |  `Alt-L`  |  `opentermhere`  | 
| 在光标所在位置粘贴当前剪贴板中的内容 |  `Ctrl-V`  |  `paste`  | 
| 显示对修复错误的建议 |  `Ctrl-F3`  |  `quickfix`  | 
| 重做上次操作 |  `Ctrl-Shift-Z` \| `Ctrl-Y`  |  `redo`  | 
| 刷新预览窗格 |  `Ctrl-Enter`  |  `reloadpreview`  | 
| 开始重命名/重构选定内容 |  `Ctrl-Alt-R`  |  `renameVar`  | 
| 显示当前文档的查找和替换栏，光标位于替换为表达式上 |  `Alt-Shift-F` \| `Ctrl-H`  |  `replace`  | 
| 重新运行您的初始化脚本 |  `Ctrl-Enter`  |  `rerunInitScript`  | 
| 重启环境 |  `Ctrl-R`  |  `restartc9`  | 
| 将当前文件重置为上次保存的版本 |  `Ctrl-Shift-Q`  |  `reverttosaved`  | 
| 将每个打开的文件重置为上次保存的版本 |  `Alt-Shift-Q`  |  `reverttosavedall`  | 
| 将当前文件保存到磁盘 |  `Ctrl-S`  |  `save`  | 
| 使用不同的文件名将当前文件保存到磁盘 |  `Ctrl-Shift-S`  |  `saveas`  | 
| 显示多个文件的查找和替换栏 |  `Ctrl-Shift-F`  |  `searchinfiles`  | 
| 显示 **Process List（进程列表）**对话框 |  `Ctrl-Alt-P`  |  `showprocesslist`  | 
| 撤消上次操作 |  `Ctrl-Z`  |  `undo`  | 

## 选项卡
<a name="keybindings-vim-windows-linux-tabs"></a>


****  

| 说明 | 键绑定 | 命令 | 
| --- | --- | --- | 
| 关闭当前窗格中所有打开的选项卡（当前选项卡除外） |  `Ctrl-Alt-W`  |  `closeallbutme`  | 
| 关闭所有窗格中所有打开的选项卡 |  `Alt-Shift-W`  |  `closealltabs`  | 
| 关闭当前窗格 |  `Ctrl-W`  |  `closepane`  | 
| 关闭当前选项卡 |  `Alt-W`  |  `closetab`  | 
| 向下移一个窗格 |  `Ctrl-Meta-Down`  |  `gotopanedown`  | 
| 向左移一个窗格 |  `Ctrl-Meta-Left`  |  `gotopaneleft`  | 
| 向右移一个窗格 |  `Ctrl-Meta-Right`  |  `gotopaneright`  | 
| 向上移一个窗格 |  `Ctrl-Meta-Up`  |  `gottopaneup`  | 
| 向左移一个选项卡 |  `Ctrl-[`  |  `gototableft`  | 
| 向右移一个选项卡 |  `Ctrl-]`  |  `gototabright`  | 
| 将当前选项卡下移一个窗格，如果选项卡已在最底部，则在对应位置创建一个拆分选项卡 |  `Ctrl-Meta-Down`  |  `movetabdown`  | 
| 将当前选项卡左移一个窗格，如果选项卡已在最左侧，则在对应位置创建一个拆分选项卡 |  `Ctrl-Meta-Left`  |  `movetableft`  | 
| 将当前选项卡右移一个窗格，如果选项卡已在最右侧，则在对应位置创建一个拆分选项卡 |  `Ctrl-Meta-Right`  |  `movetabright`  | 
| 将当前选项卡上移一个窗格，如果选项卡已在最顶端，则在对应位置创建一个拆分选项卡 |  `Ctrl-Meta-Up`  |  `movetabup`  | 
| 转至下一窗格 |  `Ctrl-``  |  `nextpane`  | 
| 转至下一选项卡 |  `Ctrl-Tab \| Alt-``  |  `nexttab`  | 
| 转至前一窗格 |  `Ctrl-Shift-``  |  `previouspane`  | 
| 转至前一选项卡 |  `Ctrl-Shift-Tab \| Alt-Shift-``  |  `previoustab`  | 
| 返回上一选项卡 |  `Esc`  |  `refocusTab`  | 
| 再次打开上一选项卡 |  `Alt-Shift-T`  |  `reopenLastTab`  | 
| 在文件树中显示当前选项卡 |  `Ctrl-Shift-L`  |  `revealtab`  | 
| 转至第十个选项卡 |  `Ctrl-0`  |  `tab0`  | 
| 转至第一个选项卡 |  `Ctrl-1`  |  `tab1`  | 
| 转至第二个选项卡 |  `Ctrl-2`  |  `tab2`  | 
| 转至第三个选项卡 |  `Ctrl-3`  |  `tab3`  | 
| 转至第四个选项卡 |  `Ctrl-4`  |  `tab4`  | 
| 转至第五个选项卡 |  `Ctrl-5`  |  `tab5`  | 
| 转至第六个选项卡 |  `Ctrl-6`  |  `tab6`  | 
| 转至第七个选项卡 |  `Ctrl-7`  |  `tab7`  | 
| 转至第八个选项卡 |  `Ctrl-8`  |  `tab8`  | 
| 转至第九个选项卡 |  `Ctrl-9`  |  `tab9`  | 

## 面板
<a name="keybindings-vim-windows-linux-panels"></a>


****  

| 说明 | 键绑定 | 命令 | 
| --- | --- | --- | 
| 显示 **Go to Anything（转到任意内容）**模式中的 **Go（转到）**窗口 |  `Ctrl-E\|Ctrl-P`  |  `gotoanything`  | 
| 显示 **Go to Command（转到命令）**模式中的 **Go（转到）**窗口 |  `Ctrl-.\|F1`  |  `gotocommand`  | 
| 显示 **Go to File（转到文件）**模式中的 **Go（转到）**窗口。 |  `Ctrl-O`  |  `gotofile`  | 
| 显示 **Go to Symbol（转到符号）**模式中的 **Go（转到）**窗口。 |  `Ctrl-Shift-O`  |  `gotosymbol`  | 
| 显示 **Outline（大纲）**窗口 |  `Ctrl-Shift-E`  |  `outline`  | 
| 显示隐藏的 **Console（控制台）**窗口，或隐藏显示的控制台窗口 |  `F6`  |  `toggleconsole`  | 
| 显示隐藏的 **Environment（环境）**窗口，或隐藏显示的环境窗口 |  `Ctrl-I`  |  `toggletree`  | 

## 代码编辑器
<a name="keybindings-vim-windows-linux-code-editor"></a>


****  

| 说明 | 键绑定 | 命令 | 
| --- | --- | --- | 
| 在当前光标上一行添加一个光标，如果已添加了光标，则在其上方再添加一个光标 |  `Ctrl-Alt-Up`  |  `addCursorAbove`  | 
| 在当前光标上一行添加第二个光标，如果已添加了第二个光标，将第二个光标向上移动一行 |  `Ctrl-Alt-Shift-Up`  |  `addCursorAboveSkipCurrent`  | 
| 在当前光标下一行添加一个光标，如果已添加了光标，则在其下方再添加一个光标 |  `Ctrl-Alt-Down`  |  `addCursorBelow`  | 
| 在当前光标下一行添加第二个光标。如果已添加了第二个光标，将第二个光标向下移动一行 |  `Ctrl-Alt-Shift-Down`  |  `addCursorBelowSkipCurrent`  | 
| 如果各行光标未对齐，则将各行上的所有光标移至与当前光标对齐的位置 |  `Ctrl-Alt-A`  |  `alignCursors`  | 
| 回退一个字符 |  `Shift-Backspace \| Backspace`  |  `backspace`  | 
| 将选定内容缩进一个制表符位置 |  `Ctrl-]`  |  `blockindent`  | 
| 将选定内容减少缩进一个制表符位置 |  `Ctrl-[`  |  `blockoutdent`  | 
| 控制是否可以将光标从编辑器切换到 IDE 中其他位置 |  `Ctrl-Z \| Ctrl-Shift-Z \| Ctrl-Y`  |  `cancelBrowserUndoInAce`  | 
| 复制一行的内容，并将复制的内容粘贴到下一行 |  `Alt-Shift-Down`  |  `copylinesdown`  | 
| 复制一行的内容，并将复制的内容粘贴到上一行 |  `Alt-Shift-Up`  |  `copylinesup`  | 
| 剪切选定内容。如果未选择任何内容，删除一个字符 |  `Shift-Delete`  |  `cut_or_delete`  | 
| 删除一个字符 |  `Delete`  |  `del`  | 
| 复制选定的内容，并在选择后立即粘贴复制的内容 |  `Ctrl-Shift-D`  |  `duplicateSelection`  | 
| 将当前行的内容包含在选定内容中 |  `Ctrl-Shift-L`  |  `expandtoline`  | 
| 将下一次出现的匹配符号之前的内容都选中 |  `Ctrl-Shift-M`  |  `expandToMatching`  | 
| 折叠选定代码；如果选中的是折叠的单元，则将其展开 |  `Alt-L \| Ctrl-F1`  |  `fold`  | 
| 折叠所有可折叠的元素（当前选定内容范围除外） |  `Alt-0`  |  `foldOther`  | 
| 向下移一行 |  `Down`  |  `golinedown`  | 
| 向上移一行 |  `Up`  |  `golineup`  | 
| 转至文件末尾 |  `Ctrl-End`  |  `gotoend`  | 
| 向左移一个字符 |  `Left`  |  `gotoleft`  | 
| 转至当前行末尾 |  `Alt-Right \| End`  |  `gotolineend`  | 
| 转至当前行开头 |  `Alt-Left \| Home`  |  `gotolinestart`  | 
| 转至下一错误 |  `Alt-E`  |  `goToNextError`  | 
| 向下移一页 |  `Page Down`  |  `gotopagedown`  | 
| 向上移一页 |  `Page Up`  |  `gotopageup`  | 
| 转至前一错误 |  `Alt-Shift-E`  |  `goToPreviousError`  | 
| 向右移一个字符 |  `Right`  |  `gotoright`  | 
| 转至文件开头 |  `Ctrl-Home`  |  `gotostart`  | 
| 向左移一个单词 |  `Ctrl-Left`  |  `gotowordleft`  | 
| 向右移一个单词 |  `Ctrl-Right`  |  `gotowordright`  | 
| 将选定内容缩进一个制表符位置 |  `Tab`  |  `indent`  | 
| 转至当前范围中的匹配符号 |  `Ctrl-P`  |  `jumptomatching`  | 
| 增大字体大小 |  `Ctrl-+ \| Ctrl-=`  |  `largerfont`  | 
| 如果光标左侧是一个数字，则将其将减少 1 |  `Ctrl-Shift-Down`  |  `modifyNumberDown`  | 
| 如果光标左侧是一个数字，则将其将增加 1 |  `Ctrl-Shift-Up`  |  `modifyNumberUp`  | 
| 将选定内容向下移一行 |  `Alt-Down`  |  `movelinesdown`  | 
| 将选定内容向上移一行 |  `Alt-Up`  |  `movelinesup`  | 
| 将选定内容减少缩进一个制表符位置 |  `Shift-Tab`  |  `outdent`  | 
| 打开/关闭覆盖模式 |  `Insert`  |  `overwrite`  | 
| 删除当前行的内容 |  `Ctrl-D`  |  `removeline`  | 
| 删除从光标到当前行末尾的内容 |  `Alt-Delete`  |  `removetolineend`  | 
| 删除从当前行开头直至光标所在位置的内容 |  `Alt-Backspace`  |  `removetolinestart`  | 
| 删除光标左侧的单词 |  `Ctrl-Backspace`  |  `removewordleft`  | 
| 删除光标右侧的单词 |  `Ctrl-Delete`  |  `removewordright`  | 
| 回放以前记录的击键 |  `Ctrl-Shift-E`  |  `replaymacro`  | 
| 将当前文件向下滚动一行 |  `Ctrl-Down`  |  `scrolldown`  | 
| 将当前文件向上滚动一行 |  `Ctrl-Up`  |  `scrollup`  | 
| 选择所有可选的内容 |  `Ctrl-A`  |  `selectall`  | 
| 将下一行包含到选定内容中 |  `Shift-Down`  |  `selectdown`  | 
| 将左侧下一字符包含到选定内容中 |  `Shift-Left`  |  `selectleft`  | 
| 将当前行上光标之后的其余部分包含到选定内容中 |  `Shift-End`  |  `selectlineend`  | 
| 将当前行上从开头到光标的部分包含到选定内容中 |  `Shift-Home`  |  `selectlinestart`  | 
| 包含选定内容之后的更多匹配选择 |  `Ctrl-Alt-Right`  |  `selectMoreAfter`  | 
| 包含选定内容之前的更多匹配选择 |  `Ctrl-Alt-Left`  |  `selectMoreBefore`  | 
| 包含选定内容之后的下一个匹配选择 |  `Ctrl-Alt-Shift-Right`  |  `selectNextAfter`  | 
| 包含选定内容之前的下一个匹配选择 |  `Ctrl-Alt-Shift-Left`  |  `selectNextBefore`  | 
| 选择或查找下一个匹配选择 |  `Alt-K`  |  `selectOrFindNext`  | 
| 选择或查找前一个匹配选择 |  `Alt-Shift-K`  |  `selectOrFindPrevious`  | 
| 将从光标向下到当前页末尾的部分包含到选定内容中 |  `Shift-Page Down`  |  `selectpagedown`  | 
| 将从光标向上到当前页开头的部分包含到选定内容中 |  `Shift-Page Up`  |  `selectpageup`  | 
| 将光标右侧的下一字符包含到选定内容中 |  `Shift-Right`  |  `selectright`  | 
| 将从光标向下到当前文件末尾的部分包含到选定内容中 |  `Ctrl-Shift-End`  |  `selecttoend`  | 
| 将从光标到当前行末尾的部分包含到选定内容中 |  `Alt-Shift-Right`  |  `selecttolineend`  | 
| 将从当前行开头到光标部分包含到选定内容中 |  `Alt-Shift-Left`  |  `selecttolinestart`  | 
| 包含从光标到当前范围中下一匹配符号的内容 |  `Ctrl-Shift-P`  |  `selecttomatching`  | 
| 将从光标向上到当前文件开头的部分包含到选定内容中 |  `Ctrl-Shift-Home`  |  `selecttostart`  | 
| 将上一行包含到选定内容中 |  `Shift-Up`  |  `selectup`  | 
| 将光标左侧下一单词包含到选定内容中 |  `Ctrl-Shift-Left`  |  `selectwordleft`  | 
| 将光标右侧下一单词包含到选定内容中 |  `Ctrl-Shift-Right`  |  `selectwordright`  | 
| 显示 **Preferences（首选项）**选项卡 |  `Ctrl-,`  |  `showSettingsMenu`  | 
| 清除所有之前的选择 |  `Esc`  |  `singleSelection`  | 
| 减小字体大小 |  `Ctrl--`  |  `smallerfont`  | 
| 如果已选择多行，则按排序顺序将其重新排列 |  `Ctrl-Alt-S`  |  `sortlines`  | 
| 在当前行末尾添加光标 |  `Ctrl-Alt-L`  |  `splitIntoLines`  | 
| 在选定内容周围环绕块注释字符，如果已有块注释字符，则将其删除 |  `Ctrl-Shift-/`  |  `toggleBlockComment`  | 
| 在选定的每一行开头添加行注释字符，如果已有行注释字符，则将其删除 |  `Ctrl-/`  |  `togglecomment`  | 
| 折叠代码，如果已折叠，则取消折叠 |  `F2`  |  `toggleFoldWidget`  | 
| 折叠父代码，如果已折叠，则取消折叠 |  `Alt-F2`  |  `toggleParentFoldWidget`  | 
| 开始击键记录，如果已在记录，则停止 |  `Ctrl-Alt-E`  |  `togglerecording`  | 
| 设置单词换行，如果已设置，则停止单词换行 |  `Ctrl-Q`  |  `toggleWordWrap`  | 
| 将选定内容更改为全部小写 |  `Ctrl-Shift-U`  |  `tolowercase`  | 
| 将选定内容更改为全部大写 |  `Ctrl-U`  |  `touppercase`  | 
| 转置选定内容 |  `Alt-X`  |  `transposeletters`  | 
| 展开选定代码 |  `Alt-Shift-L \| Ctrl-Shift-F1`  |  `unfold`  | 
| 展开整个文件的代码折叠 |  `Alt-Shift-0`  |  `unfoldall`  | 

## emmet
<a name="keybindings-vim-windows-linux-emmet"></a>


****  

| 说明 | 键绑定 | 命令 | 
| --- | --- | --- | 
| 计算简单数学表达式（如 `2*4` 或 `10/2`）并输出结果 |  `Shift-Ctrl-Y`  |  `emmet_evaluate_math_expression`  | 
| 将 CSS 等缩写扩展为 HTML、XML 或 CSS 代码，具体取决于当前文件的语法 |  `Ctrl-Alt-E`  |  `emmet_expand_abbreviation`  | 
| 使用制表键来遍历展开的 CSS 等缩写 |  `Tab`  |  `emmet_expand_abbreviation_with_tab`  | 
| 转至下一段可编辑代码 |  `Shift-Ctrl-.`  |  `emmet_select_next_item`  | 
| 转至前一段可编辑代码 |  `Shift-Ctrl-,`  |  `emmet_select_previous_item`  | 
| 展开一个缩写，然后将当前选定内容放入所生成片段的最后一个元素内 |  `Shift-Ctrl-A`  |  `emmet_wrap_with_abbreviation`  | 

## Terminal
<a name="keybindings-vim-windows-linux-terminal"></a>


****  

| 说明 | 键绑定 | 命令 | 
| --- | --- | --- | 
| 打开新的 **Terminal（终端）**选项卡 |  `Alt-T`  |  `openterminal`  | 
| 在编辑器和 **Terminal（终端）**选项卡之间切换 |  `Alt-S`  |  `switchterminal`  | 

## 运行和调试
<a name="keybindings-vim-windows-linux-run-debug"></a>


****  

| 说明 | 键绑定 | 命令 | 
| --- | --- | --- | 
| 生成当前文件 |  `Ctrl-B`  |  `build`  | 
| 恢复当前暂停的流程 |  `F8`  |  `resume`  | 
| 运行或调试当前应用程序 |  `Alt-F5`  |  `run`  | 
| 运行或调试上次运行的文件 |  `F5`  |  `runlast`  | 
| 单步进入堆栈中的下一个函数 |  `F11`  |  `stepinto`  | 
| 单步退出当前函数的范围 |  `Shift-F11`  |  `stepout`  | 
| 跳过堆栈中的当前表达式 |  `F10`  |  `stepover`  | 
| 停止运行或调试当前应用程序 |  `Shift-F5`  |  `stop`  | 
| 停止生成当前文件 |  `Ctrl-Shift-C`  |  `stopbuild`  | 