

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

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

# 使用 AWS Cloud9 IDE
<a name="ide"></a>

*集成开发环境 (IDE)* 提供一组代码编写生产力工具，如源代码编辑器、调试器和生成工具。

**重要**  
我们建议采用以下最佳实践来使用 AWS Cloud9：  
使用**源代码控制并经常备份**您的环境。 AWS Cloud9 不执行自动备份。
在您的环境**中定期更新软件**。 AWS Cloud9 不执行自动软件更新。
 ** AWS CloudTrail在您的 AWS 账户中开启**以跟踪环境中的活动。有关更多信息，请参阅 [使用记录 AWS Cloud9 API 调用 AWS CloudTrail](cloudtrail.md) 
仅与 **trusted users**（可信用户）共享您的环境。共享您的环境可能会使您的 AWS 访问凭证面临风险。有关更多信息，请参阅 [在中使用共享环境 AWS Cloud9](share-environment.md) 

阅读以下一个或多个主题，学习如何使用 AWS Cloud9 IDE。

**Topics**
+ [了解 IDE](tour-ide.md)
+ [语言支持](language-support.md)
+ [增强语言支持](enhanced-lang-support.md)
+ [菜单命令参考](menu-commands.md)
+ [查找和替换文本](find-replace-text.md)
+ [预览文件](file-preview.md)
+ [预览运行的应用程序](app-preview.md)
+ [使用文件修订](file-revisions.md)
+ [使用图像文件](images.md)
+ [使用生成器、运行程序和调试程序](build-run-debug.md)
+ [使用自定义环境变量](env-vars.md)
+ [使用项目设置](settings-project.md)
+ [使用用户设置](settings-user.md)
+ [使用 AWS 项目和用户设置](settings-aws.md)
+ [使用键绑定](settings-keybindings.md)
+ [使用主题](settings-theme.md)
+ [管理初始化脚本](settings-init-script.md)
+ [MacOS 默认键绑定参考](keybindings-default-apple-osx.md)
+ [MacOS Vim 键绑定参考](keybindings-vim-apple-osx.md)
+ [MacOS Emacs 键绑定参考](keybindings-emacs-apple-osx.md)
+ [MacOS Sublime 键绑定参考](keybindings-sublime-apple-osx.md)
+ [Windows/Linux 默认键绑定参考](keybindings-default-windows-linux.md)
+ [Windows/Linux Vim 键绑定参考](keybindings-vim-windows-linux.md)
+ [Windows/Linux Emacs 键绑定参考](keybindings-emacs-windows-linux.md)
+ [Windows / Linux Sublime 键绑定参考](keybindings-sublime-windows-linux.md)
+ [命令参考](commands.md)

# AWS Cloud9 IDE 之旅
<a name="tour-ide"></a>

本主题提供了 AWS Cloud9 集成开发环境 (IDE) 的基本介绍。为了充分利用此导览，请按照以下顺序逐步操作。

**Topics**
+ [先决条件](#tour-ide-prereqs)
+ [步骤 1：菜单栏](#tour-ide-menu-bar)
+ [第 2 步：控制面板](#tour-ide-dashboard)
+ [步骤 3：“Environment（环境）”窗口](#tour-ide-environment)
+ [步骤 4：编辑器、选项卡和窗格](#tour-ide-editor)
+ [第 5 步：控制台](#tour-ide-console)
+ [步骤 6：打开文件部分](#tour-ide-open-files)
+ [第 7 步：间距](#tour-ide-gutter)
+ [步骤 8：状态栏](#tour-ide-status-bar)
+ [步骤 9：“Outline（大纲）”窗口](#tour-ide-outline)
+ [步骤 10：“Go（转到）”窗口](#tour-ide-go)
+ [步骤 11：“Immediate（立即运行）”选项卡](#tour-ide-immediate)
+ [步骤 12：进程列表](#tour-ide-process-list)
+ [第 13 步：首选项](#tour-ide-preferences)
+ [第 14 步：终端](#tour-ide-terminal)
+ [步骤 15：“Debugger（调试程序）”窗口](#tour-ide-debugger)
+ [最终思考](#tour-ide-cleanup)

## 先决条件
<a name="tour-ide-prereqs"></a>

要参加本次巡回演出，你必须拥有一个 AWS 账户和一个开放的 AWS Cloud9 开发环境。要了解如何执行这些操作，您可以执行 [入门 AWS Cloud9](tutorials-basic.md) 中的步骤。您也可以探索单独的相关主题，例如 [设置 AWS Cloud9](setting-up.md) 和 [在环境中工作 AWS Cloud9](environments.md)。

**警告**  
拥有 AWS Cloud9 开发环境可能会导致向您的 AWS 账户收费。如果您使用 EC2 环境，其中包括可能对 Amazon EC2 收取的费用。有关更多信息，请参阅 [Amazon EC2 定价](https://aws.amazon.com/ec2/pricing/)。

## 步骤 1：菜单栏
<a name="tour-ide-menu-bar"></a>

IDE 顶部边缘的*菜单栏* 中包含用于处理文件和编码以及用于更改 IDE 设置的常用命令。还可以通过菜单栏预览和运行代码。

![\[AWS Cloud9 IDE 中的菜单栏\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-menu-bar.png)


通过选择菜单栏边缘的箭头可以隐藏它，如下所示。

![\[在 AWS Cloud9 IDE 中隐藏菜单栏\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-hide-menu-bar.png)


通过选择菜单栏之前位置中间的箭头，可以重新显示菜单栏，如下所示。

![\[在 AWS Cloud9 IDE 中再次显示菜单栏\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-show-menu-bar.png)


将结果与以下内容进行比较。

![\[在 AWS Cloud9 IDE 中隐藏和显示菜单栏\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-hide-show-menu-bar.gif)


在本教程接下来的几节中，您可以使用 IDE 处理一组文件。要设置这些文件，请依次选择 **File (文件)**、**New File (新建文件)**。

接下来，将以下文本复制到 `Untitled1` 编辑器选项卡中。

```
fish.txt
--------
A fish is any member of a group of organisms that consist of
all gill-bearing aquatic craniate animals that lack limbs with
digits. They form a sister group to the tunicates, together
forming the olfactores. Included in this definition are
lampreys and cartilaginous and bony fish as well as various
extinct related groups.
```

要保存文件，请依次选择 **File (文件)**、**Save (保存)**。将该文件命名为 `fish.txt`，然后选择 **Save (保存)**。

按以上说明重复操作，使用以下内容将第二个文件保存为 `cat.txt`。

```
cat.txt
-------
The domestic cat is a small, typically furry, carnivorous mammal.
They are often called house cats when kept as indoor pets or
simply cats when there is no need to distinguish them from
other felids and felines. Cats are often valued by humans for
companionship and for their ability to hunt.
```

在 IDE 中，通常可以通过多种方法执行操作。例如，如果要隐藏菜单栏，除了选择其边缘的箭头外，还可以选择 **View (视图)**、**Menu Bar (菜单栏)**。如果要创建新文件，除了选择 **File (文件) > New File (新建文件)** 外，还可以按 `Alt-N`（在 Windows/Linux 中）或 `Control-N`（在 MacOS 中）。为减少本教程的长度，我们只介绍一种操作方法。随着您逐渐熟悉 IDE，您可以随意探索并找出最适合您的方法。

## 第 2 步：控制面板
<a name="tour-ide-dashboard"></a>

*控制面板* 让您可以快速访问您的各个环境。在控制面板中，您可以创建、打开和更改环境的设置。

要打开控制面板，在菜单栏上选择 **AWS Cloud9** > **Go To Your Dashboard (转到您的控制面板)**。

![\[打开 AWS Cloud9 仪表板\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-go-dashboard.png)


要查看您的环境设置，请在**my-demo-environment**卡片内选择标题。要返回控制面板，请使用 Web 浏览器的后退按钮或名为 **Environments（环境）**的面包屑导航。

要在您的环境中打开 IDE，请选择**my-demo-environment**卡内的 “**打开 IDE**”。

**注意**  
需要一些时间，才能再次显示 IDE。

## 步骤 3：“Environment（环境）”窗口
<a name="tour-ide-environment"></a>

**Environment（环境）**窗口中显示环境中的文件夹和文件的列表。还可以显示不同类型的文件，如隐藏文件。

要显示或隐藏 **Environment（环境）**窗口的内容，请选择 **Environment（环境）**按钮。

要显示或隐藏 **Environment**（环境）窗口和 **Environment**（环境）按钮，请在菜单栏上依次选择 **Window**（窗口）、**Environment**（环境）。

![\[AWS Cloud9 IDE 中的 “环境” 窗口\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-environment-window.png)


要显示或隐藏隐藏的文件，请在 **Environment（环境）**窗口中，选择齿轮图标，然后选择 **Show Hidden Files（显示隐藏的文件）**。

![\[使用“Environment (环境)”窗口显示隐藏文件\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-show-hidden-files.png)


## 步骤 4：编辑器、选项卡和窗格
<a name="tour-ide-editor"></a>

在*编辑器* 中可以执行编写代码、运行终端会话和更改 IDE 设置等操作。打开文件的每个实例、终端会话等均由*选项卡* 表示。选项卡可以分组到*窗格* 中。选项卡显示在其窗格边缘。

![\[AWS Cloud9 IDE 中窗格边缘的选项卡\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-tab-buttons.png)


要显示或隐藏选项卡，请在菜单栏上选择 **View (视图)** > **Tab Buttons (选项卡按钮)**。

要打开新的选项卡，请选择选项卡所在行边缘的 **\$1** 图标。然后选择一个可用的命令，例如 **New File (新建文件)**，如下所示。

![\[“New File (新建文件)”等包含待选择命令的新选项卡\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-new-file.png)


要显示两个窗格，请选择位于选项卡所在行边缘、看上去像下拉菜单的图标。然后选择 **Split Pane in Two Rows (将窗格拆分为两排)**，如下所示。

![\[通过将一个窗格拆分为两排显示两个窗格\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-split-pane-two-rows.png)


要返回到单个窗格中，请重新选择下拉菜单图标，然后选择单个方形图标，如下所示。

![\[显示单个窗格\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-single-pane-view.png)


## 第 5 步：控制台
<a name="tour-ide-console"></a>

*控制台* 是可创建和管理选项卡的另一个位置。默认情况下，它包含一个“Terminal (终端)”选项卡，但也可以包含其他类型的选项卡。

![\[AWS Cloud9 控制台\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-console.png)


要显示或隐藏控制台，请在菜单栏上选择 **View (视图)** > **Console (控制台)**。

要展开或收缩控制台，请选择控制台边缘的调整大小图标，如下所示。

![\[将控制台显示放大\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-console-resize.png)


## 步骤 6：打开文件部分
<a name="tour-ide-open-files"></a>

**Open Files (打开文件)** 部分显示当前在编辑器中打开的所有文件的列表。**Open Files（打开文件）**是 **Environment（环境）**窗口的一部分。

![\[“Environment (环境)”窗口中的“Open Files (打开文件)”部分\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-open-files.png)


要显示或隐藏 **Open Files (打开文件)** 部分，请在菜单栏上选择 **View (视图)** > **Open Files (打开文件)**。

要在打开文件部分之间切换，请从列表中选择感兴趣的文件。

## 第 7 步：间距
<a name="tour-ide-gutter"></a>

*间距*位于编辑器中各个文件的边缘，当您处理文件时，其中显示行号和上下文符号等内容。

![\[IDE 中的排水沟 AWS Cloud9\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-gutter.png)


要显示或隐藏间距，请在菜单栏上选择 **View (视图)** > **Gutter (间距)**。

## 步骤 8：状态栏
<a name="tour-ide-status-bar"></a>

*状态栏*位于编辑器中各个文件的边缘，其中显示行号、字号、文件类型首选项、空格和选项卡设置以及相关的编辑器设置等内容。

![\[AWS Cloud9 IDE 中的状态栏\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-status-bar.png)


要显示或隐藏状态栏，请在菜单栏上选择 **View (视图)** > **Status Bar (状态栏)**。

要转到特定行号，请选择包含感兴趣文件的选项卡。然后在状态栏中选择行号和字号（应类似于 **7:45**）。键入行号 (如 `4`)，然后按 `Enter`，如下所示。

![\[使用 AWS Cloud9 IDE 状态栏转到特定的行号\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-go-to-line.png)


![\[使用 AWS Cloud9 IDE 状态栏转到特定的行号\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-go-to-line.gif)


要更改文件类型首选项，请在状态栏中选择不同的文件类型。例如，为 **cat.txt** 选择 **Ruby** 可查看语法色彩的更改。要恢复纯文本颜色，请选择 **Plain Text (纯文本)**，如下所示。

![\[在 AWS Cloud9 IDE 状态栏中更改文件类型首选项\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-text-color.png)


![\[在 AWS Cloud9 IDE 状态栏中更改文件类型首选项\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-text-color.gif)


## 步骤 9：“Outline（大纲）”窗口
<a name="tour-ide-outline"></a>

您可以使用 **Outline (大纲)** 窗口快速转到特定的文件位置。

要显示或隐藏 **Outline**（大纲）窗口和 **Outline**（大纲）按钮，请在菜单栏上依次选择 **Window**（窗口）、**Outline**（大纲）。

要了解 **Outline (大纲)** 窗口的工作方式，请创建一个名为 `hello.rb` 的文件。将以下代码复制到文件中并保存它。

```
def say_hello(i)
  puts "Hello!"
  puts "i is #{i}"
end

def say_goodbye(i)
  puts "i is now #{i}"
  puts "Goodbye!"
end

i = 1
say_hello(i)
i += 1
say_goodbye(i)
```

要显示或隐藏 **Outline (大纲)** 窗口的内容，请选择 **Outline (大纲)** 按钮。

在 **Outline (大纲)** 窗口中，选择 **say\$1hello(i)**，然后选择 **say\$1goodbye(i)**。

![\[AWS Cloud9 IDE 中的 “轮廓” 窗口\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-outline.png)


![\[AWS Cloud9 IDE 中的 “轮廓” 窗口\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-outline.gif)


## 步骤 10：“Go（转到）”窗口
<a name="tour-ide-go"></a>

您可以使用 **Go (转到)** 窗口以在编辑器中打开文件，转到符号的定义，运行命令，或转到编辑器中活动文件的某一行。

![\[“Go (转到)”窗口。\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-go-window-first.png)


要显示 **Go (转到)** 窗口的内容，请选择 **Go (转到)** 按钮（放大镜图标）。

要显示或隐藏 **Go**（转到）窗口和 **Go**（转到）按钮，请在菜单栏上选择 **Window**（窗口）、**Go**（转到）。

在 **Go (转到)** 窗口打开的情况下，您可以：
+ 键入一个正斜杠 (`/`)，后跟部分或全部文件名。在显示的匹配文件列表中，选择要在编辑器中打开的文件。例如，键入 `/fish` 会列出 `fish.txt`，而键入 `/.txt` 会列出 `fish.txt` 和 `cat.txt`。
**注意**  
文件搜索范围仅限 **Environment (环境)** 窗口中的非隐藏文件和非隐藏文件夹。
+ 键入一个 @ 符号 (`@`)，后跟符号名称。在显示的匹配符号列表中，选择要在编辑器中转到的符号。例如，在编辑器中打开 `hello.rb` 文件并处于活动状态时，键入 `@hello` 可列出 `say_hello(i)`，或键入 `@say` 可列出 `say_hello(i)` 和 `say_goodbye(i)`。
**注意**  
如果编辑器中的活动文件是支持的语言项目的一部分，则符号搜索范围限于当前项目。否则，符号搜索范围仅限编辑器中的活动文件。有关更多信息，请参阅 [增强的 TypeScript 支持和功能](projects.md)。
+ 键入一个点号 (`.`)，后跟命令名称。在显示的命令列表中，选择一条命令以运行该命令。例如，键入 `.closetab` 然后按 `Enter` 键关闭编辑器中的当前选项卡。有关可用命令的列表，请参阅[AWS Cloud9 IDE 的命令参考](commands.md)。
+ 键入一个冒号 (`:`)，后跟一个数字，以转到编辑器中活动文件的该行号。例如，在编辑器中打开 `hello.rb` 文件并处于活动状态时，键入 `:11` 以转到该文件的第 11 行。

![\[在 AWS Cloud9 IDE 中打开窗口\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-go-window.png)


要根据当前键盘模式和操作系统查看每个操作的键盘绑定，请参阅菜单栏中 **Go（转到）**菜单上的每个可用 **Go To（转到）**命令。

## 步骤 11：“Immediate（立即运行）”选项卡
<a name="tour-ide-immediate"></a>

“**即**时” 选项卡允许您测试小段 JavaScript代码。要了解 **Immediate (立即运行)** 选项卡的工作方式，请执行以下操作。

1. 在菜单栏上选择 **Window (窗口)**、**New Immediate Window (新建即时窗口)**，打开 **Immediate (立即运行)** 选项卡。

1. 在 **Immediate (立即运行)** 选项卡中运行某些代码。要尝试该操作，请在窗口中键入以下代码，并在键入第一行和第二行以后分别按 `Shift-Enter`。在键入第三行以后按 `Enter`。（如果您在键入第一行或第二行以后按 `Enter` 而不是 `Shift-Enter`，代码将早于您的预期时间运行。）

   ```
   for (i = 0; i <= 10; i++) { // Press Shift-Enter after typing this line.
     console.log(i)            // Press Shift-Enter after typing this line.
   }                           // Press Enter after typing this line. The numbers 0 to 10 will be printed.
   ```  
![\[在“Immediate (立即运行)”选项卡中运行代码\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-immediate.png)

## 步骤 12：进程列表
<a name="tour-ide-process-list"></a>

**Process List (进程列表)** 中显示所有正在运行的进程。您可以停止、甚至强制停止您不想继续运行的进程。要了解 **Process List (进程列表)** 窗口的工作方式，请执行以下操作。

1. 在菜单栏上选择 **Tools (工具)**、**Process List (进程列表)**，以显示 **Process List (进程列表)**。

1. 查找进程。在 **Process List (进程列表)** 中，键入进程的名称。

1. 停止或强制停止进程。在进程列表中选择进程，然后选择 **Kill (终止)** 或 **Force Kill (强制终止)**。

![\[AWS Cloud9 IDE 中的进程列表\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-process-list.png)


## 第 13 步：首选项
<a name="tour-ide-preferences"></a>

 *首选项* 中包含以下设置。
+ 仅适用于当前环境的设置，例如是否在编辑器中使用软制表符、要忽略的文件类型以及 PHP 和 Python 等语言的代码完成行为。
+ 适用于每个环境的用户设置，如颜色、字体和编辑器行为。
+ 您的键绑定，例如，您首选用于处理文件和编辑器的快捷键组合。
+ IDE 的整体主题。

要显示首选项，请在菜单栏上选择 **AWS Cloud9** > **Preferences (首选项)**。此时会显示类似于下面的内容：

![\[在 AWS Cloud9 IDE 中显示首选项\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-preferences.png)


## 第 14 步：终端
<a name="tour-ide-terminal"></a>

您可以在 IDE 中运行一个或多个*终端* 会话。要开始一个终端会话，请在菜单栏上依次选择 **Window (窗口)**、**New Terminal (新建终端)**。或者，选择“Console (控制台)”选项卡旁边的“加号”图标，然后选择 **New Terminal (新建终端)**。

您可以尝试在终端中运行命令。例如，在终端中键入 `echo $PATH`，然后按 `Enter` 以显示 `PATH` 环境变量的值。

您也可以尝试运行其他命令。例如，尝试使用以下命令。
+  ** `pwd` **可输出当前目录的路径。
+  **`aws --version`**以打印有关 AWS CLI。的版本信息。
+  ** `ls -l` **可输出有关当前目录的信息。

![\[在 AWS Cloud9 IDE 中使用终端\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-terminal.gif)


## 步骤 15：“Debugger（调试程序）”窗口
<a name="tour-ide-debugger"></a>

您可以使用 **Debugger (调试程序)** 窗口调试代码。例如，您可以单步运行代码（即一次运行一部分）、观察一段时间内的变量值以及研究调用堆栈。

**注意**  
此过程类似于任一[基本 IDE 教程](tutorials-basic.md)中的 [步骤 2：IDE 基本导览](tutorials-basic.md#tutorial-tour-ide)。

要显示或隐藏 **Debugger**（调试程序）窗口和 **Debugger**（调试程序）按钮，请在菜单栏上依次选择 **Window**（窗口）、**Debugger**（调试程序）。

在本教程中，您可以通过执行以下操作来**试验 Debugger** 窗口和一些 JavaScript 代码。

1. 在终端会话中运行以下命令：**`node --version`**，来检查环境中 Node.js 的安装情况。如果安装了 Node.js，则 Node.js 版本号将显示在输出中，您可以跳到此过程中的步骤 3（“写点 JavaScript 代码...”）。

1. 如果您需要安装 Node.js，请执行以下操作。

   1. 运行以下两个命令，一次运行一个，以确保您的环境有最新的更新，然后下载 Node Version Manager (nvm)。 （nvm 是一个简单的 Bash shell 脚本，可用于安装和管理 Node.js 版本。 有关更多信息，请参阅上[的 “节点版本管理器](https://github.com/creationix/nvm/blob/master/README.md)” GitHub。）

      对于 Amazon Linux：

      ```
      sudo yum -y update
      curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
      ```

      对于 Ubuntu Server：

      ```
      sudo apt update
      curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
      ```

   1. 使用文本编辑器更新您的 Shell 配置文件（例如，`~/.bashrc`）以允许加载 nvm。例如，在 IDE 的 **Environment（环境）**窗口中选择齿轮图标，然后选择 **Show Home in Favorites（在收藏夹中显示主页）**。重复该步骤，然后选择 **Show Hidden Files（显示隐藏的文件）**。

   1. 打开 `~/.bashrc` 文件。

   1. 在文件末尾键入或粘贴以下代码，以启用 nvm 加载。

      对于 Amazon Linux：

      ```
      export NVM_DIR="/home/ec2-user/.nvm"
      [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm.
      ```

      对于 Ubuntu Server：

      ```
      export NVM_DIR="/home/ubuntu/.nvm"
      [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm.
      ```

   1. 保存该文件。

   1. 关闭该终端会话，并启动一个新会话。然后，运行以下命令来安装最新版本的 Node.js。

      ```
      nvm install node
      ```

1. 写一些 JavaScript 代码来调试。例如，创建一个文件，将以下代码添加到该文件中，并将其保存为 `hello.js`。

   ```
   var i;
   
   i = 10;
   
   console.log("Hello!");
   console.log("i is " + i);
   
   i += 1;
   
   console.log("i is now " + i);
   console.log("Goodbye!");
   ```

1. 将一些断点添加到代码中。例如，在间距中选择第 6 行和第 10 行的页边距。以上两行的行号旁会显示一个红色圆圈，如下所示。  
![\[在“Debugger (调试程序)”窗口中向代码添加断点\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-breakpoints.png)

1. 现在，您可以调试 JavaScript 代码了。为此，请执行以下操作。

   1. 要显示或隐藏 **Debugger (调试程序)** 窗口的内容，请选择 **Debugger (调试程序)** 按钮，如下一步中所示。

   1. 观察名为 `i` 的变量在代码运行过程中的值。在 **Debugger (调试程序)** 窗口中，为 **Watch Expressions (监视表达式)** 选择 **Type an expression here (在此处键入表达式)**。键入字母 `i`，然后按 `Enter`，如下所示。  
![\[“Debugger (调试程序)”窗口\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-watch-expression.png)

   1. 开始运行代码。依次选择 **Run (运行)**、**Run With (运行方式)**、**Node.js**，如下所示。  
![\[“Debugger (调试程序)”窗口\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-run-with.png)

   1. 代码在第 6 行暂停运行。**Debugger（调试程序）**窗口显示 **Watch Expressions（监视表达式）**中 `i` 的值，当前值是 `10`。  
![\[“Debugger (调试程序)”窗口\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-breakpoint-hit.png)

   1. 在 **Debugger (调试程序)** 窗口中，选择 **Resume (恢复)**，即如下所示的蓝色箭头图标。  
![\[在“Debugger (调试程序)”窗口中恢复调试\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-resume.png)

   1. 代码在第 10 行暂停运行。**Debugger (调试程序)** 窗口现在显示 `i` 的新值，当前值是 `11`。

   1. 再次选择 **Resume (恢复)**。代码会运行到结束。输出会转到控制台的 **hello.js** 选项卡，如下所示。  
![\[显示调试输出的 hello.js 选项卡\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-debugger-output.png)

将结果与以下内容进行比较。

![\[使用调试程序\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-debugger.gif)


## 最终思考
<a name="tour-ide-cleanup"></a>

**警告**  
请记住，拥有 AWS Cloud9 开发环境可能会导致向您的 AWS 账户收费。如果您使用 EC2 环境，其中包括可能对 Amazon EC2 收取的费用。有关更多信息，请参阅 [Amazon EC2 定价](https://aws.amazon.com/ec2/pricing/)。  
上一级章节（*[使用 IDE](ide.md)*）中还有其他主题，可供您用于进一步探索。但是，当您浏览完 AWS Cloud9 IDE 并且不再需要该环境时，请务必删除该环境及其相关资源，如中所述[删除环境](delete-environment.md)。

# AWS Cloud9 IDE 中的语言支持
<a name="language-support"></a>

 AWS Cloud9 IDE 支持多种编程语言。下表列出了支持的语言以及支持级别。


****  

| 语言 | 语法突出显示 1  | 运行 UI 2  | 大纲视图 | 代码提示和检查 | 代码完成 | 调试 3  | 
| --- | --- | --- | --- | --- | --- | --- | 
|  C\$1\$1  |  ✓  |  ✓  |  ✓  |  |  ✓ 5   |  ✓ 4   | 
|  C\$1  |  ✓  |  |  ✓  |  |  ✓ 5   |  | 
|  CoffeeScript  |  ✓  |  ✓  |  |  |  |  | 
|  CSS  |  ✓  |  |  |  |  ✓  |  | 
|  Dart  |  ✓  |  |  |  |  |  | 
|  Go  |  ✓  |  ✓  |  ✓  |  ✓  |  ✓ 4   |  ✓ 4   | 
|  Haskell  |  ✓  |  |  |  |  |  | 
|  HTML  |  ✓  |  ✓  |  ✓  |  |  ✓  |  | 
|  Java6  |  ✓  | ✓ |  ✓  | ✓ |  ✓   | ✓ | 
|  JavaScript  |  ✓  |  ✓  |  ✓  |  ✓  |  ✓  |  | 
|  Node.js  |  ✓  |  ✓  |  ✓  |  ✓  |  ✓  |  ✓   | 
|  PHP  |  ✓  |  ✓  |  ✓  |  ✓  |  ✓ 7   |  ✓  | 
|  Python  |  ✓  |  ✓  |  ✓  |  ✓  |  ✓ 8   |  ✓  | 
|  Ruby  |  ✓  |  ✓  |  ✓  |  ✓  |  ✓ 5   |  | 
|  Shell 脚本  |  ✓  |  ✓  |  ✓  |  ✓  |  ✓ 5   |  | 
|  TypeScript9  |  ✓  |  ✓  |  ✓  |  ✓  |  ✓   |  | 

 **备注** 

 1 AWS Cloud9 IDE 为更多语言提供了语法高亮显示。有关完整列表，请在 IDE 菜单栏中选择 **View > Syntax（视图 > 语法）**。

 2 您可以单击按钮，为标有 **✓** 的语言运行程序或脚本，而无需使用命令行。对于未标有 **✓** 或未显示在 IDE 中的 **Run > Run With（运行 > 运行方式）**菜单栏上的语言，您可以为该语言创建一个运行程序。有关说明，请参阅[创建生成器或运行程序](build-run-debug.md#build-run-debug-create-builder-runner)。

 3 您可以使用 IDE 的内置工具调试标有 **✓** 的语言的程序或脚本。有关说明，请参阅[调试您的代码](build-run-debug.md#build-run-debug-debug)。

 4 对于该语言，该功能处于实验状态。未完全实现该功能，并且未介绍或不支持该功能。

 5 对于该语言，该功能仅支持本地函数。

 6 可以在具有 2 GiB 或更大内存的 AWS Cloud9 EC2 开发环境中激活对 *Java SE 11* 功能的增强支持。有关更多信息，请参阅 [增强了对 Java 开发的支持](enhanced-java.md)。

 7 要指定用于 AWS Cloud9 完成自定义 PHP 代码的路径，请在 AWS Cloud9 IDE 中打开 “**首选项**” 中的 “**项目”、“PHP 支持”、“启用 PHP 代码完成**” 设置，然后将自定义代码的路径添加到 “**项目”、“PHP 支持”、“PHP 完成包含路径**” 设置中。

 8 要指定用于 AWS Cloud9 完成自定义 Python 代码的路径，请在 AWS Cloud9 IDE 中打开 “**首选项**” 中的 “**项目”、“Python 支持”、“启用 Python 代码完成**” 设置，然后将自定义代码的路径添加到**项目、Python 支持、PythonP** ATH 设置中。

 9 AWS Cloud9 IDE 在语言项目环境中为某些编程语言提供了额外支持，例如 TypeScript （ AWS Cloud9 IDE 支持 3.7.5 版）。有关更多信息，请参阅[使用语言项目](projects.md)。

## AWS Cloud9 集成开发环境 (IDE) 中支持的编程语言版本
<a name="programming-language-support"></a>

下表概述了 AWS Cloud9 IDE AMIs 中特定支持哪些版本的编程语言。Ubuntu 18 于 2023 年下线，因此无法在 AWS Cloud9中更新编程语言版本。


****  

| *语言* | *Amazon Linux 2023*  | *Amazon Linux 2*  | *Ubuntu 18* | *Ubuntu 22* | 
| --- | --- | --- | --- | --- | 
|  Python3  |  3.9  |  3.8  |  3.6  |  3.10  | 
|  TypeScript  |  3.7.5  |  3.7.5  |  3.7.5  |  3.7.5  | 
|  PHP  |  8.2  |  8.2  |  7.2  |  8.1  | 
|  Ruby  |  3.2  |  3.0  |  3.0  |  3.2  | 
|  Java  |  11、17  |  11  |  11  |  11、17  | 
|  Python2  |  不适用  |  2.7  |  不适用  |  不适用  | 
|  C\$1\$1\$1  |  23  | 17 |  17  |  23  | 
|  Go  |  1.20  |  1.20  |  1.9  |  1.21  | 
| CoffeeScript |  2.7  |  2.7  |  2.7  |  2.7  | 

\$1您可以运行以下命令，通过您要使用的编程语言版本编译 C\$1\$1 文件：

```
g++ -std=c++[version-number] "$file" -o "$file.o"
```

# 增强了 AWS Cloud9 IDE 中的语言支持
<a name="enhanced-lang-support"></a>

AWS Cloud9 提供增强的支持，以改善您在使用以下语言进行编码时的开发体验：
+ **Java**：扩展允许提供诸如代码完成、错误检查、特定于上下文的操作和调试选项等功能。
+ **Typescript**：*语言项目*提供了对以下内容的增强生产力功能的 TypeScript访问权限：.

**Topics**
+ [增强版 Java 支持](enhanced-java.md)
+ [增强 TypeScript 支持](projects.md)

# 增强了对 Java 开发的支持
<a name="enhanced-java"></a>

AWS Cloud9 提供增强的语言支持，以改善您在使用 Java 时的开发体验。主要的生产力特性包括代码完成、错误筛选、代码镜头，以及调试选项，如断点和步进。

**重要**  
生产力增强功能仅适用于连接到 Amazon EC2 实例的 AWS Cloud9 开发环境。  
此外，为了确保在使用对 Java 的增强语言支持时获得最佳 IDE 体验，支持您的 AWS Cloud9 环境的 Amazon EC2 计算实例需要 **2 GiB** 或更多的内存。如果 AWS Cloud9 检测到您的 EC2 计算实例没有足够的 RAM，则无法选择激活 Java 增强功能。

## 激活和自定义增强的 Java 支持
<a name="activating-java-support"></a>

如果满足以下条件，将自动显示激活 Java 增强支持的选项：
+ 您的 AWS Cloud9 环境已连接到具有 2 GiB 或更大内存的 Amazon EC2 实例。
+ 您正在处理与 Java 开发相关的文件。 AWS Cloud9 检查以下文件名和扩展名：`*.java`、`*.gradle`（与 Gradle 构建工具关联）和`pom.xml`（与 Apache Maven 编译工具关联）。
+ 你正在一个在 **2020 年 12 月 11 日**之后创建的 AWS Cloud9 环境中工作。目前，不可能在此日期之前创建的开发环境中使用 Java 生产力功能。

如果满足这些条件，将显示一个对话框，询问您是否要激活用于编码和调试 Java 的额外生产力功能。如果选择 **Activate**（激活），则可以开始使用 IDE 中的功能。

![\[代码完成途径\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/working_with_java_rework.png)


**注意**  
在您创建 AWS Cloud9 环境时启动的亚马逊 EC2 实例已经安装了 *Amazon Coretto 11*。Amazon Coretto 是开放 Java 开发工具包 (OpenJDK) 的免费、多平台、生产就绪型分发版。这意味着您可以开始在中开发和运行 Java 应用程序 AWS Cloud9 out-of-the-box。

您也可以使用该 AWS Cloud9 界面手动激活和停用增强的语言和调试支持。依次选择 **Preferences**（首选项）、**Java Support**（Java 支持）和 **Enhanced Java Support**（增强版 Java 支持）。

![\[手动激活和停用增强的 Java 支持\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/activate_java_extensions_update.png)


IDE 的两个扩展提供了对 AWS Cloud9 Java 开发的增强支持：
+ Red Hat 对 Java(TM) 的语言支持
+ 适用于 Java 的调试程序

该 AWS Cloud9 界面允许您访问各种设置，以自定义这些扩展程序的性能。要更改扩展设置，请依次选择 **Preferences**（首选项）、**Java Support**（Java 支持）。

有关这些设置的详细信息，请参阅扩展 GitHub 存储库中已安装版本的 ReadMe 页面：
+ [Red Hat 对 Java(TM) 的语言支持](https://github.com/redhat-developer/vscode-java/tree/v1.8.0)
+ [适用于 Java 的调试程序](https://github.com/microsoft/vscode-java-debug/tree/0.40.1)

## 功能亮点
<a name="key-java-features"></a>

激活增强型 Java 支持后，您可以使用一系列提高生产力的功能。

**代码完成**

代码完成后，编辑器会根据您输入的代码提供上下文感知建议。例如，如果在对象名称后键入点 (".") 运算符，则编辑器将显示该对象可用的方法或属性。

![\[代码完成途径\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/code-complete-java.png)


**代码镜头**

代码镜头允许您直接在源代码中访问上下文特定的操作。对于 Java 开发，代码透镜通过允许您运行和调试特定方法来促进单元测试。

![\[访问代码镜头\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/context-specific-actions.png)


**代码检查**

代码检查描述了编辑器在构建代码之前如何突出显示代码中的潜在错误。例如，如果您尝试使用未初始化的变量或试图为期望使用不同类型的变量分配值，检查工具就会调用。

![\[在构建代码之前限制突出显示错误\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/linting.png)


**调试选项**

可以实现断点和监视表达式。在源代码中设置断点并显示调试器窗格以定义相关条件。

![\[调试选项\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/debugging_options.png)


**使用配置文件进行调试**

您还可以使用 AWS Cloud9 通过 `launch.json` 和 `tasks.json` 配置文件支持的启动配置和任务来控制调试配置。有关启动配置及其使用方法的示例，请参阅 [Java 调试配置](https://github.com/microsoft/vscode-java-debug/blob/main/Configuration.md)。

**Java 命令**

您可以通过**按 Ctrl** \$1 从 AWS Cloud9 命令面板运行命令。 或者 **F1**。然后通过输入“java”来过滤相关命令。

![\[列出可用的 Java 命令\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/java_commands.png)


**快速修复**

通过快速修复，您可以通过为缺少的元素创建存根来解决由于使用未声明的变量或未定义的方法而导致的错误。

![\[实施快速修复\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/quick_fix_java.png)


**重构**

重构允许您在不改变其行为的情况下重组代码。要访问诸如组织导入或创建构造函数等选项，请打开该项的上下文（右键单击）菜单，然后选择 **Refactoring**（重构）。

![\[重构功能\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/refactoring_java.png)


**重命名**

重命名是一项重构功能，允许您通过单个操作轻松修改代码中出现的所选变量、函数和类的名称。要更改名称，请打开该项目的上下文（右键单击）菜单，然后选择 **Rename**（重命名）。重命名会影响代码中名称的每个实例。

![\[重命名类名称\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/renaming_refactoring_java.png)


## 用于 Java 开发的可选工具
<a name="optional-tools"></a>

提供增强 Java 支持的扩展包括允许您将 Gradle 和 Maven 自动化工具集成到项目开发中的功能。这些工具未预先安装在您的 AWS Cloud9 开发环境中。有关安装和使用这些可选构建工具的更多信息，请参阅以下资源：
+ **Gradle**：[入门指南](https://docs.gradle.org/current/userguide/userguide.html)
+ **Maven**：[时长 5 分钟的 Maven](https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html)

## Java 扩展的 Problems（问题）选项卡
<a name="problems-panel"></a>

您可以在 AWS Cloud9 IDE 的 “问题” 选项卡中查看 AWS Cloud9 环境中的 Java 项目问题并对其进行故障排除。要显示 Problems（问题）选项卡，请从 AWS Cloud9 IDE 中选择 **View**（查看），然后从菜单栏中选择 **Problem**（问题）。

![\[打开 Problems（问题）选项卡\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/problems-panel.png)


您也可以在控制台中选择 **\$1** 图标，然后选择 **Open Problems**（打开问题），以此来打开 Problems（问题）选项卡。当您在选项卡中选择问题时，它会打开受影响的文件并显示问题详细信息。

# 增强的 TypeScript 支持和功能
<a name="projects"></a>

 AWS Cloud9 IDE 允许您使用*语言项目*来访问的增强生产力功能 TypeScript。语言项目是 IDE 中 AWS Cloud9 开发环境的相关文件、文件夹和设置的集合。

要使用 IDE 在您的环境中创建语言项目，请参阅 [创建语言项目](#projects-create)。

## 可用的项目工作效率功能
<a name="projects-features"></a>

 AWS Cloud9 IDE 为提供了以下项目生产力功能 TypeScript。

### Autocomplete
<a name="projects-features-autocomplete"></a>

在编辑器中键入文件时，如果有符号可用，则在该上下文的插入点处显示符号列表。

若要在插入点从列表中插入符号，如果尚未选择符号，请使用上箭头或下箭头键选择该符号，然后按 `Tab`。

在您按 `Tab` 之前，您可能会看到一个屏幕提示，其中包含有关所选的符号（如果信息可用）。

若不插入符号，要关闭列表，请按 `Esc`。

### 间距图标
<a name="projects-features-gutter-icons"></a>

图标可能会出现在活动文件的间距中。在您运行代码前，这些图标会突出显示可能出现的问题，如警告和代码中的错误。

有关问题的更多信息，请将指针暂停在问题的图标上。

### 快速修复
<a name="projects-features-quick-fixes"></a>

在编辑器内的活动文件中，您可以显示有关编码错误和警告的信息，以及可以自动应用于该代码的可能修复。要显示错误或警告信息以及可能的修复，请选择代码中带有红色虚线下划线（用于错误）或灰色虚线（用于警告）的任何部分。或者，如果光标停留在带有红色或灰色虚线下划线的代码上，请按 `Option-Enter`（适用于 macOS），或 `Alt-Enter`（适用于 Linux 或 Windows）。要应用建议的修复，请在列表中选择修复，或使用箭头键选择修复，然后按 `Enter`。要打开或关闭鼠标点击的选择快速修复，请选择 **AWS Cloud9** > **Preferences（首选项）**> **User Settings（用户设置）**> **Language（语言）**> **Hints & Warning（提示和警告）**> **Show Available Quick Fixes on Click（点击时显示可用的快速修复）**。

### 查找引用
<a name="projects-features-find-refs"></a>

在编辑器内的活动文件中，如果 IDE 具有这些引用的访问权限，您可以在插入点处显示对该符号的所有引用。

要进行此操作，请在符号内任意位置的插入点处运行** `Find References` **命令。例如：
+ 右键单击插入点处，然后选择 **Find References（查找引用）**。
+ 在菜单栏上，选择 **Go > Find Replace（查找 > 替换）**。
+ 对于 macOS、Windows 或 Linux，默认按 `Shift-F3`。

如果引用可用，则会在活动文件顶部的该符号旁边打开一个窗格。该窗格包含引用符号的文件的列表。该窗格将显示列表中的第一个引用。要显示其他参照，请在列表中选择该参照。

要关闭窗格，请选择关闭 (**X**) 图标，或按 `Esc`。

在以下情况下，** `Find References` **命令可能被禁用，或者可能无法按预期工作：
+ 在活动文件的项目中没有对该符号的引用。
+ IDE 无法在活动文件的项目中找到该符号的部分或全部引用。
+ IDE 无权访问活动文件的项目中引用该符号的一个或多个位置。

### 转到定义
<a name="projects-features-go-to-def"></a>

在编辑器内的活动文件中，您可以从符号转到定义该符号的位置（如果 IDE 可以访问该定义）。

要进行此操作，请在符号内任意位置的插入点处运行** `Jump to Definition` **命令。例如：
+ 右键单击插入点处，然后选择 **Jump to Definition（跳到定义）**。
+ 在菜单栏上，选择 **Go > Jump to Definition（转到 > 转到定义）**。
+ 对于 macOS、Windows 或 Linux，默认按 `F3`。

如果定义可用，即使该定义位于单独的文件中，插入点也将切换到该定义。

在以下情况下，** `Jump to Definition` **命令可能被禁用，或者可能无法按预期工作：
+ 符号是该语言的原语符号。
+ IDE 无法在活动文件的项目中找到定义的位置。
+ IDE 无法在活动文件项目中访问定义的位置。

### Go to Symbol（转到符号）
<a name="projects-features-go-to-symbol"></a>

您可以转到项目中的指定符号，如下所示。

1. 通过在编辑器中打开项目中的其中一个文件，使其处于活动状态。如果已打开该文件，请选择编辑器中的选项卡以确认该文件为活动文件。

1. 运行 **`Go to Symbol`** 命令。例如：
   + 选择 **Go（前往）**窗口按钮（放大镜图标）。在 **Go to Anything（转到任意内容）**框中，键入 `@`，然后开始键入符号。
   + 在菜单栏上，选择**Go > Go To Symbol（转到 > 转到符号）**。在 **Go（转到）**窗口中，开始在 **@** 后键入符号。
   + 对于 macOS，默认按 `Command-2` 或 `Command-Shift-O`；对于 Windows 或 Linux，默认按 `Ctrl-Shift-O`。在 **Go（转到）**窗口中，开始在 **@** 后键入符号。

   例如，若要在名为 `toString` 的项目中查找所有符号，开始键入 `@toString`（或如果已显示 **@**，在 **@** 后开始键入 `toString`）。

1. 如果您在 **Symbols（符号）**列表中看到了想要转到的符号，单击选择它。或者使用上箭头或下箭头键选择它，然后按 `Enter`。然后插入点将切换到该符号。

如果要转到的符号不在活动文件的项目中，则此过程可能无法取得预期效果。

## 创建语言项目
<a name="projects-create"></a>

使用以下步骤创建一个语言项目，该项目将与 AWS Cloud9 IDE 中支持的项目生产力功能配合使用。

**注意**  
我们建议您对属于语言项目一部分的文件使用受支持的项目生产力功能。尽管您可以在不属于项目的文件上使用某些受支持的项目生产力功能，但这些功能可能会产生意外结果。  
例如，您可以使用 IDE 从不属于项目的环境的根级别文件中搜索引用和定义。然后，IDE 可能只搜索同一根级别的文件。这可能导致找不到引用或定义，即使这些引用或定义实际位于同一环境中其他位置的语言项目中。

### 创建 TypeScript 语言项目
<a name="projects-create-typescript"></a>

1. 确保已在环境中 TypeScript 安装。有关更多信息，请参阅 [TypeScript 的教程 AWS Cloud9](sample-typescript.md) 中的 [步骤 1：安装所需工具](sample-typescript.md#sample-typescript-install)。

1. 从环境的 IDE 中的终端会话中，切换到您想要创建项目的目录。如果目录不存在，请创建并切换到该目录。例如，以下命令在环境的根目录下（`~/environment` 中）创建名为 `my-demo-project` 的目录，然后切换到该目录。

   ```
   mkdir ~/environment/my-demo-project
   cd ~/environment/my-demo-project
   ```

1. 在要创建项目的目录的根目录下，使用**`--init`**选项运行 TypeScript 编译器。

   ```
   tsc --init
   ```

   如果此命令成功，编 TypeScript 译器将在项目目录的根目录中创建一个`tsconfig.json`文件。您可以使用此文件来定义各种项目设置，例如 TypeScript 编译器选项和要在项目中包含或排除的特定文件。

   有关 `tsconfig.json` 文件的更多信息，请参阅以下网站：
   +  [tsconfig.json 网站上概述](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html)。 TypeScript 
   +  json.schemastore.org 网站上的 [tsconfig.json 架构](http://json.schemastore.org/tsconfig)。

# AWS Cloud9 IDE 的菜单栏命令参考
<a name="menu-commands"></a>

以下列表描述了 AWS Cloud9 IDE 中的默认菜单栏命令。如果未显示菜单栏，请选择 IDE 上边缘的细条以显示菜单栏。
+  [AWS Cloud9 菜单](#menu-commands-cloud9) 
+  [文件菜单](#menu-commands-file) 
+  [编辑菜单](#menu-commands-edit) 
+  [查找菜单](#menu-commands-find) 
+  [查看菜单](#menu-commands-view) 
+  [转到菜单](#menu-commands-goto) 
+  [运行菜单](#menu-commands-run) 
+  [工具菜单](#menu-commands-tools) 
+  [窗口菜单](#menu-commands-window) 
+  [支持菜单](#menu-commands-support) 
+  [预览菜单](#menu-commands-preview) 
+  [其他菜单栏命令](#menu-commands-other) 

## AWS Cloud9 菜单
<a name="menu-commands-cloud9"></a>


| 命令 | 描述 | 
| --- | --- | 
|   **Preferences**   |  请执行以下操作之一： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/menu-commands.html) 请参阅[使用项目设置](settings-project.md)、[使用用户设置](settings-user.md)、[使用键绑定](settings-keybindings.md)、[使用主题](settings-theme.md)以及[使用初始化脚本](settings-init-script.md)。  | 
|   **Go To Your Dashboard (转到您的控制面板)**   |  在单独的 Web 浏览器选项卡中打开 AWS Cloud9 控制台。请参阅[创建环境](create-environment.md)、[打开环境](open-environment.md)、[更改环境设置](change-environment.md)以及[删除环境](delete-environment.md)。  | 
|   **欢迎页面**   |  打开 **Welcome（欢迎）**选项卡。  | 
|   **Open Your Project Settings (打开您的项目设置)**   |  为当前环境打开 `project.settings` 文件。请参阅[使用项目设置](settings-project.md)。  | 
|   **Open Your User Settings (打开您的用户设置)**   |  为当前用户打开 `user.settings` 文件。请参阅[使用用户设置](settings-user.md)。  | 
|   **Open Your Keymap (打开您的键映射)**   |  为当前用户打开 `keybindings.settings` 文件。请参阅[使用键绑定](settings-keybindings.md)。  | 
|   **Open Your Init Script (打开您的初始化脚本)**   |  为当前用户打开 `init.js` 文件。请参阅[使用初始化脚本](settings-init-script.md)。  | 
|   **Open Your Stylesheet (打开您的样式表)**   |  为当前用户打开 `styles.css` 文件。请参阅[使用主题](settings-theme.md)。  | 

## 文件菜单
<a name="menu-commands-file"></a>


****  

| 命令 | 描述 | 
| --- | --- | 
|   **New File (新建文件)**   |  创建新的文件。  | 
|   **New From Template (根据模板新建)**   |  根据选定文件模板创建新的文件。  | 
|   **Open**   |  显示并转到 **Navigate（导航）**窗口。  | 
|   **Open Recent (打开最近的)**   |  打开选定的文件。  | 
|   **Save**   |  保存当前文件。  | 
|   **Save As**   |  使用不同的文件名和/或位置保存当前文件。  | 
|   **Save All (全部保存)**   |  保存所有未保存的文件。  | 
|   **Revert to Saved (恢复为保存的)**   |  放弃自上次保存以来对当前文件所做的更改。  | 
|   **Revert All to Saved (全部恢复为保存的)**   |  放弃自上次保存以来对所有未保存的文件所做的更改。  | 
|   **Show File Revision History (显示文件修订历史记录)**   |  在编辑器中查看和管理对当前文件的更改。请参阅[使用文件修订](file-revisions.md)。  | 
|   **Upload Local Files (上传本地文件)**   |  显示 **Upload Files（上传文件）**对话框，您可以在其中将本地电脑中的文件拖到环境中。  | 
|   **Download Project (下载项目)**   |  将环境中的文件合并为一个 .zip 格式文件，您可以将该文件下载到本地电脑中。  | 
|   **Line Endings (行结尾)**   |  使用 **Windows**（回车符加换行符）或 **Unix**（仅换行符）行结尾。  | 
|   **Close File (关闭文件)**   |  关闭当前文件。  | 
|   **Close All Files (关闭所有文件)**   |  关闭所有打开的文件。  | 

## Edit Menu（编辑菜单）
<a name="menu-commands-edit"></a>


| 命令 | 描述 | 
| --- | --- | 
|   **撤消**   |  撤消上次操作。  | 
|   **重做**   |  重做上次撤消的操作。  | 
|   **剪切**   |  将所选内容移动到剪贴板中。  | 
|   **​复制**   |  将选定内容复制到剪贴板中。  | 
|   **粘贴**   |  将剪贴板的内容复制到选择点。  | 
|   **Keyboard Mode (键盘模式)**   |  要使用的一组键绑定，如 `Default`、`Vim`、`Emacs` 或 `Sublime`。请参阅[使用键绑定](settings-keybindings.md)。  | 
|   **Selection > Select All (选择 > 全选)**   |  选择所有可选的内容。  | 
|   **Selection > Split Into Lines (选择 > 拆分为几行)**   |  在当前行末尾添加光标。  | 
|   **Selection > Single Selection (选择 > 单一选择)**   |  清除以前选择的所有内容。  | 
|   **Selection > Multiple Selections > Add Cursor Up (选择 > 多重选择 > 在上面添加光标)**   |  在活动光标的上一行添加一个光标。如果已添加光标，则在该光标上面再添加一个光标。  | 
|   **Selection > Multiple Selections > Add Cursor Down (选择 > 多重选择 > 在下面添加光标)**   |  在活动光标的下一行添加一个光标。如果已添加一个光标，则在该光标下面再添加一个光标。  | 
|   **Selection > Multiple Selections > Move Active Cursor Up (选择 > 多重选择 > 向上移动活动光标)**   |  在活动光标的上一行添加第二个光标。如果已添加第二个光标，则将第二个光标向上移动一行。  | 
|   **Selection > Multiple Selections > Move Active Cursor Down (选择 > 多重选择 > 向下移动活动光标)**   |  在活动光标的下一行添加第二个光标。如果已添加第二个光标，则将第二个光标向下移动一行。  | 
|   **Selection > Multiple Selections > Add Next Selection Match (选择 > 多重选择 > 添加下一个选择匹配项)**   |  包含选定内容之后的更多匹配选择。  | 
|   **Selection > Multiple Selections > Add Previous Selection Match (选择 > 多重选择 > 添加上一个选择匹配项)**   |  包含所选内容之前的更多选择匹配项。  | 
|   **Selection > Multiple Selections > Merge Selection Range (选择 > 多重选择 > 合并选择范围)**   |  在当前行末尾添加光标。  | 
|   **Selection > Select Word Right (选择 > 选择右侧的单词)**   |  在所选内容中包含光标右侧的下一个单词。  | 
|   **Selection > Select Word Left (选择 > 选择左侧的单词)**   |  在所选内容中包含光标左侧的下一个单词。  | 
|   **Selection > Select to Line End (选择 > 选择到行末尾)**   |  将从光标到当前行末尾的部分包含到选定内容中  | 
|   **Selection > Select to Line Start (选择 > 选择到行开头)**   |  在所选内容中包含从当前行开头到光标的内容。  | 
|   **Selection > Select to Document End (选择 > 选择到文档末尾)**   |  在所选内容中包含从光标到当前文件末尾的内容。  | 
|   **Selection > Select to Document Start (选择 > 选择到文档开头)**   |  在所选内容中包含从光标到当前文件开头的内容。  | 
|   **Line > Indent (行 > 缩进)**   |  将选定内容缩进一个制表符位置。  | 
|   **Line > Outdent (行 > 减少缩进)**   |  将选定内容减少缩进一个制表符。  | 
|   **Line > Move Line Up (行 > 向上移动一行)**   |  将所选内容向上移动一行。  | 
|   **Line > Move Line Down (行 > 向下移动一行)**   |  将所选内容向下移动一行。  | 
|   **Line > Copy Lines Up (行 > 向上复制行)**   |  复制一行的内容，并将复制的内容粘贴到上一行。  | 
|   **Line > Copy Lines Down (行 > 向下复制行)**   |  复制一行的内容，并将复制的内容粘贴到下一行。  | 
|   **Line > Remove Line (行 > 删除行)**   |  删除当前行的内容。  | 
|   **Line > Remove to Line End (行 > 删除到行末尾)**   |  删除从光标到当前行末尾的内容。  | 
|   **Line > Remove to Line Start (行 > 删除到行开头)**   |  删除从当前行开头到光标的内容。  | 
|   **Line > Split Line (行 > 拆分行)**   |  将光标到行末尾的内容移到自己的一行中。  | 
|   **Text > Remove Word Right (文本 > 删除右侧的单词)**   |  删除光标右侧的单词。  | 
|   **Text > Remove Word Left (文本 > 删除左侧的单词)**   |  删除光标左侧的单词。  | 
|   **Text > Align (文本 > 对齐)**   |  如果各行光标未对齐，则将各行上的所有光标移至与当前光标对齐的位置。  | 
|   **Text > Transpose Letters (文本 > 置换字母)**   |  置换所选内容。  | 
|   **Text > To Upper Case (文本 > 更改为大写)**   |  将所选内容更改为全部大写。  | 
|   **Text > To Lower Case (文本 > 更改为小写)**   |  将所选内容更改为全部小写。  | 
|   **Comment > Toggle Comment (注释 > 切换注释)**   |  在所选的每一行开头添加行注释字符，或删除现有的注释字符。  | 
|   **Code Folding > Toggle Fold (代码折叠 > 切换折叠)**   |  折叠代码或展开折叠的代码。  | 
|   **Code Folding > Unfold (代码折叠 > 展开)**   |  展开选定的代码。  | 
|   **Code Folding > Fold Other (代码折叠 > 折叠其他)**   |  折叠所有可折叠的元素，当前选择范围除外。  | 
|   **Code Folding > Fold All (代码折叠 > 全部折叠)**   |  折叠所有可折叠的元素。  | 
|   **Code Folding > Unfold All (代码折叠 > 全部展开)**   |  展开整个文件的代码折叠。  | 
|   **Code Formatting > Apply Code Formatting (代码格式 > 应用代码格式)**   |  重新格式化所选 JavaScript 代码。  | 
|   **Code Formatting > Open Language & Formatting Preferences (代码格式 > 打开语言和格式首选项)**   |  打开 **Preferences（首选项）**选项卡的 **Project Settings（项目设置）**部分以指定语言设置。  | 

## Find Menu（查找菜单）
<a name="menu-commands-find"></a>

有关更多信息，请参阅[查找和替换文本](find-replace-text.md)。


| 命令 | 描述 | 
| --- | --- | 
|   **查找**   |  显示当前文档的查找和替换栏，光标位于 **Find（查找）**表达式上。  | 
|   **Find Next (查找下一个)**   |  转至当前文档中下一处与您最后输入的查询匹配的内容。  | 
|   **Find Previous (查找上一个)**   |  转至当前文档中前一处与您最后输入的查询匹配的内容。  | 
|   **Replace**   |  显示当前文档的查找和替换栏，光标位于 **Replace With（替换为）**表达式上。  | 
|   **Replace Next (替换下一个)**   |  将当前文档的查找和替换栏中的下一个 **Find（查找）**匹配项替换为 **Replace With（替换内容）**。  | 
|   **Replace Previous (替换上一个)**   |  将当前文档的查找和替换栏中的上一个 **Find（查找）**匹配项替换为 **Replace With（替换内容）**。  | 
|   **Replace All (全部替换)**   |  将当前文档的查找和替换栏中的所有 **Find（查找）** 匹配项替换为 **Replace With（替换内容）**。  | 
|   **在文件中查找**   |  显示多个文件的查找和替换栏。  | 

## View Menu（查看菜单）
<a name="menu-commands-view"></a>


| 命令 | 描述 | 
| --- | --- | 
|   **编辑器**   |  显示选定的编辑器。  | 
|   **Open Files (打开的文件)**   |  在 **Environment（环境）** 窗口中显示 **Open Files（打开的文件）**列表，或隐藏显示的该列表。  | 
|   **Problems**（问题）   |  在终端的 **Problems**（问题）面板中，显示 Java 项目中环境的任何问题。您可以选择问题来打开目标文件。  | 
|   **Menu Bar** (菜单栏)   |  显示菜单栏，或隐藏显示的菜单栏。  | 
|   **Tab Buttons (选项卡按钮)**   |  显示选项卡，或隐藏显示的选项卡。  | 
|   **Gutter (间距)**   |  显示间距，或隐藏显示的间距。  | 
|   **Status Bar (状态栏)**   |  显示状态栏，或隐藏显示的状态栏。  | 
|   **控制台**   |  显示 **Console（控制台）**窗口，或隐藏显示的该窗口。  | 
|   **Layout > Single (布局 > 单个)**   |  显示单个窗格。  | 
|   **Layout > Vertical Split (布局 > 垂直拆分)**   |  显示两个窗格：顶部和底部。  | 
|   **Layout > Horizontal Split (布局 > 水平拆分)**   |  显示两个并排的窗格。  | 
|   **Layout > Cross Split (布局 > 交叉拆分)**   |  显示四个相同大小的窗格。  | 
|   **Layout > Split 1:2 (布局 > 1:2 拆分)**   |  在左侧显示一个窗格，在右侧显示两个窗格。  | 
|   **Layout > Split 2:1 (布局 > 2:1 拆分)**   |  在左侧显示两个窗格，在右侧显示一个窗格。  | 
|   **Font Size > Increase Font Size (字体大小 > 增大字体大小)**   |  增大字体大小。  | 
|   **Font Size > Decrease Font Size (字体大小 > 减小字体大小)**   |  减小字体大小。  | 
|   **语法**   |  显示当前文档的语法类型。  | 
|   **Themes (主题)**   |  显示 IDE 主题类型。  | 
|   **Wrap Lines (换行)**   |  换行到当前窗格边缘，或停止换行（如果已换行）。  | 
|   **Wrap To Print Margin (换行到打印边距)**   |  换行到当前打印边距边缘，或停止换行（如果已换行）。  | 

## Go Menu（转到菜单）
<a name="menu-commands-goto"></a>


| 命令 | 描述 | 
| --- | --- | 
|   **Go To Anything (转到任意内容)**   |  显示 **Go to Anything（转到任意内容）**模式中的 **Go（转到）**窗口。  | 
|   **Go To Symbol (转到符号)**   |  显示 **Go to Symbol（转到符号）**模式中的 **Go（转到）**窗口。  | 
|   **Go To File (转到文件)**   |  显示 **Go to File（转到文件）**模式中的 **Go（转到）**窗口。  | 
|   **Go To Command (转到命令)**   |  显示 **Go to Command（转到命令）**模式中的 **Go（转到）**窗口。  | 
|   **Go To Line (转到行)**   |  显示 **Go to Line（转到行）**模式中的 **Go（转到）**窗口。  | 
|   **Next Error (下一个错误)**   |  转至下一错误。  | 
|   **Previous Error (上一个错误)**   |  转至前一错误。  | 
|   **Word Right (右侧的单词)**   |  向右移一个单词。  | 
|   **Word Left (左侧的单词)**   |  向左移一个单词。  | 
|   **Line End (行末尾)**   |  转至当前行末尾。  | 
|   **Line Start (行开头)**   |  转至当前行开头。  | 
|   **Jump to Definition (跳到定义)**   |  转到光标所在位置变量或函数的定义。  | 
|   **Jump to Matching Brace (跳到匹配大括号)**   |  转到当前范围中的匹配符号。  | 
|   **Scroll to Selection (滚动到所选内容)**   |  滚动所选内容以更好地进行查看。  | 

## Run Menu（运行菜单）
<a name="menu-commands-run"></a>


| 命令 | 描述 | 
| --- | --- | 
|   **Run**   |  运行或调试当前应用程序。  | 
|   **Run Last (运行上次)**   |  运行或调试上次运行的文件。  | 
|   **Run With (运行方式)**   |  使用选定的运行程序运行或调试。请参阅[使用生成器、运行程序和调试程序](build-run-debug.md)。  | 
|   **Run History (运行历史记录)**   |  查看运行历史记录。  | 
|   **Run Configurations** (运行配置)   |  选择要运行或调试的运行配置，或者创建或管理运行配置。请参阅[使用生成器、运行程序和调试程序](build-run-debug.md)。  | 
|   **Show Debugger at Break (在断点处显示调试程序)**   |  在运行代码到达断点时，显示 **Debugger（调试程序）**窗口。  | 
|   **构建**   |  生成当前文件。  | 
|   **Cancel Build (取消生成)**   |  停止生成当前文件。  | 
|   **Build System (生成系统)**   |  使用选定的生成系统生成。  | 
|   **Show Build Result (显示生成结果)**   |  显示相关的生成结果。  | 
|   **Automatically Build Supported Files (自动生成支持的文件)**   |  自动生成支持的文件。  | 
|   **Save All on Build (在生成时保存所有内容)**   |  在生成时，保存所有相关的未保存文件。  | 

## 工具菜单
<a name="menu-commands-tools"></a>


| 命令 | 描述 | 
| --- | --- | 
|   **Strip Trailing Space (删除尾随空格)**   |  删除行末尾的空格。  | 
|   **Preview, Preview File (预览 > 预览文件)**   |  在预览标签页中预览当前文档。  | 
|   **Preview (预览)、Preview Running Application (预览运行的应用程序)**   |  在单独的 Web 浏览器标签页中预览当前应用程序。  | 
|   **Preview > Configure Preview URL (预览 > 配置预览 URL)**   |  打开 **Preferences（首选项）**选项卡的 **Project Settings（项目设置）**部分以显示 **Run & Debug > Preview URL（运行和调试 > 预览 URL）**框。  | 
|   **Preview > Show Active Servers (预览 > 显示活动服务器)**   |  在 **Process List（进程列表）**对话框中显示可用的活动服务器地址列表。  | 
|   **Process List (进程列表)**   |  显示 **Process List（进程列表）**对话框。  | 
|   **Show Autocomplete (显示自动完成)**   |  显示代码完成上下文菜单。  | 
|   **Rename Variable (重命名变量)**   |  开始重命名/重构所选内容。  | 
|   **Toggle Macro Recording (切换宏录制)**   |  开始按键录制或停止录制（如果已在录制）。  | 
|   **Play Macro (播放宏)**   |  播放以前录制的按键。  | 

## Window Menu（窗口菜单）
<a name="menu-commands-window"></a>


| 命令 | 描述 | 
| --- | --- | 
|   **Go**   |  显示 **Go（转到）** 窗口，或隐藏显示的该窗口。  | 
|   **New Terminal (新建终端)**   |  打开新的 **Terminal（终端）**选项卡。  | 
|   **New Immediate Window (新建即时窗口)**   |  打开新的 **Immediate（即时）**选项卡。  | 
|   **共享**   |  显示 **Share this environment（共享此环境）**对话框。  | 
|   **Installer (安装程序)**   |  显示 **AWS Cloud9 Installer（Amazon Cloud9 安装程序）**对话框。  | 
|   **协作**   |  显示 **Collaborate（协作）**窗口，或隐藏显示的该窗口。  | 
|   **Outline (大纲)**   |  显示 **Outline（大纲）**窗口，或隐藏显示的该窗口。  | 
|   **AWS 资源**   |  显示 **AWS Resources（Amazon 资源)**窗口，或隐藏显示的该窗口。  | 
|   **环境**   |  显示 **Environment（环境）**窗口，或隐藏显示的该窗口。  | 
|   **Debugger (调试程序)**   |  显示 **Debugger（调试程序）**窗口，或隐藏显示的该窗口。  | 
|   **Navigation > Tab to the Right (导航 > 右侧的选项卡)**   |  向右移一个选项卡。  | 
|   **Navigation > Tab to the Left (导航 > 左侧的选项卡)**   |  向左移一个选项卡。  | 
|   **Navigation > Next Tab in History (导航 > 历史记录中的下一个选项卡)**   |  转到下一个选项卡。  | 
|   **Navigation > Previous Tab in History (导航 > 历史记录中的上一个选项卡)**   |  转至前一选项卡。  | 
|   **Navigation > Move Tab to Right (导航 > 向右移动选项卡)**   |  向右移动当前选项卡。如果该选项卡已在最右侧，则在该位置创建一个拆分选项卡。  | 
|   **Navigation > Move Tab to Left (导航 > 向左移动选项卡)**   |  向左移动当前选项卡。如果该选项卡已在最左侧，则在该位置创建一个拆分选项卡。  | 
|   **Navigation > Move Tab to Up (导航 > 向上移动选项卡)**   |  将当前选项卡向上移动一个窗格。如果该选项卡已在最顶端，则在该位置创建一个拆分选项卡。  | 
|   **Navigation > Move Tab to Down (导航 > 向下移动选项卡)**   |  将当前选项卡向下移动一个窗格。如果该选项卡已在最底端，则在该位置创建一个拆分选项卡。  | 
|   **Navigation > Go to Pane to Right (导航 > 转到右侧的窗格)**   |  向右移一个窗格。  | 
|   **Navigation > Go to Pane to Left (导航 > 转到左侧的窗格)**   |  向左移一个窗格。  | 
|   **Navigation > Go to Pane to Up (导航 > 转到上面的窗格)**   |  向上移一个窗格。  | 
|   **Navigation > Go to Pane to Down (导航 > 转到下面的窗格)**   |  向下移一个窗格。  | 
|   **Navigation > Switch Between Editor and Terminal (导航 > 在编辑器和终端之间切换)**   |  在编辑器和 **Terminal（终端）**选项卡之间切换。  | 
|   **Navigation > Next Pane in History (导航 > 历史记录中的下一个窗格)**   |  转到下一个窗格。  | 
|   **Navigation > Previous Pane in History (导航 > 历史记录中的上一个窗格)**   |  转到上一个窗格。  | 
|   **Saved Layouts > Save (保存的布局 > 保存)**   |  保存当前布局。要以后切换到该布局，请选择 **Saved Layouts > LAYOUT-ID（保存的布局 > 布局 ID）**。  | 
|   **Saved Layouts > Save and Close All (保存的布局 > 保存并全部关闭)**   |  保存当前布局，然后关闭所有选项卡和窗格。  | 
|   **Saved Layouts > Show Saved Layouts in File Tree (保存的布局 > 在文件树中显示保存的布局)**   |  在 **Environment（环境）**窗口中显示所有保存的布局。  | 
|   **Tabs > Close Pane (选项卡 > 关闭窗格)**   |  关闭当前窗格。  | 
|   **Tabs > Close All Tabs In All Panes (选项卡 > 关闭所有窗格中的所有选项卡)**   |  关闭所有窗格中所有打开的选项卡。  | 
|   **Tabs > Close All But Current Tab (选项卡 > 关闭当前选项卡以外的所有选项卡)**   |  关闭当前窗格中所有打开的选项卡（当前选项卡除外）。  | 
|   **Tabs > Split Pane in Two Rows (选项卡 > 将窗格拆分为两排)**   |  将当前窗格拆分为两个窗格：顶部和底部。  | 
|   **Tabs > Split Pane in Two Columns (选项卡 > 将窗格拆分为两列)**   |  将当前窗格拆分为两个窗格：左窗格和右窗格。  | 
|   **Presets > Full IDE (预设 > 完整 IDE)**   |  切换到完整 IDE 模式。  | 
|   **Presets > Minimal Editor (预设 > 最小编辑器)**   |  切换到最小编辑器模式。  | 
|   **Presets > Sublime Mode (预设 > Sublime 模式)**   |  切换到 Sublime 模式。  | 

## Support Menu（支持菜单）
<a name="menu-commands-support"></a>


| 命令 | 描述 | 
| --- | --- | 
|   **欢迎页面**   |  打开 **Welcome（欢迎）**选项卡。  | 
|   **Get Help (Community) (获得帮助 (社区))**   |  在单独的 Web 浏览器选项卡中打开 AWS Cloud9 在线社区网站。  | 
|   **Read Documentation (阅读文档)**   |  在单独的 Web 浏览器标签页中打开 *AWS Cloud9 用户指南*。  | 

## Preview Menu（预览菜单）
<a name="menu-commands-preview"></a>


| 命令 | 描述 | 
| --- | --- | 
|   **Preview File (预览文件)**   |  在预览标签页中预览当前文档。  | 
|   **Preview Running Application (预览运行的应用程序)**   |  在单独的 Web 浏览器标签页中预览当前应用程序。  | 
|   **Configure Preview URL (配置预览 URL)**   |  打开 **Preferences（首选项）**选项卡的 **Project Settings（项目设置）**部分以显示 **Run & Debug > Preview URL（运行和调试 > 预览 URL）**框。  | 
|   **Show Active Servers (显示活动服务器)**   |  在 **Process List（进程列表）**对话框中显示可用的活动服务器地址列表。  | 

## Other Menu Bar Commands（其他菜单栏命令）
<a name="menu-commands-other"></a>


| 命令 | 描述 | 
| --- | --- | 
|   **Run**   |  运行或调试当前应用程序。  | 
|   **共享**   |  打开 **Share this environment（共享此环境）**对话框。  | 
|   **Preferences（首选项）**（齿轮图标）  |  打开 **Preferences（首选项）**选项卡。  | 

# 在 AWS Cloud9 IDE 中查找和替换文本
<a name="find-replace-text"></a>

您可以使用 AWS Cloud9 集成开发环境 (IDE) 中的查找和替换栏来查找和替换单个文件或多个文件中的文本。
+  [查找单个文件中的文本](#find-replace-text-find-single) 
+  [替换单个文件中的文本](#find-replace-text-replace-single) 
+  [查找多个文件中的文本](#find-replace-text-find-multiple) 
+  [替换多个文件中的文本](#find-replace-text-replace-multiple) 
+  [查找和替换选项](#find-replace-text-replace-options) 

## 查找单个文件中的文本
<a name="find-replace-text-find-single"></a>

1. 打开要在其中查找文本的文件。如果已打开该文件，请选择该文件的选项卡以使其处于活动状态。

1. 在菜单栏上，选择 **Find > Find（查找 > 查找）**。

1. 在查找和替换栏中，为 **Find（查找）**键入要查找的文本。

1. 要指定额外的查找选项，请参阅[查找和替换选项](#find-replace-text-replace-options)。

1. 如果具有任何匹配项，**Find（查找）**框中的 **0 of 0（第 0 个（共 0 个））**将变为非零数字。如果具有任何匹配项，编辑器将转到第一个匹配项。如果具有多个匹配项，要转到下一个匹配项，请选择 **Find（查找）**框中的右箭头，或者在菜单栏上选择 **Find > Find Next（查找 > 查找下一个）**。要转到上一个匹配项，请选择 **Find（查找）**框中的左箭头，或者在菜单栏上选择 **Find > Find Previous（查找 > 查找上一个）**。

## 替换单个文件中的文本
<a name="find-replace-text-replace-single"></a>

1. 打开要在其中替换文本的文件。如果已打开该文件，请选择该文件的选项卡以使其处于活动状态。

1. 在菜单栏上，选择 **Find > Replace（查找 > 替换）**。

1. 在查找和替换栏中，为 **Find（查找）**键入要查找的文本。

1. 对于 **Replace With（替换为）**，请键入要将 **Find（查找）**中的文本替换为的文本。

1. 要指定额外的查找和替换选项，请参阅[查找和替换选项](#find-replace-text-replace-options)。

1. 如果具有任何匹配项，**Find（查找）**框中的 **0 of 0（第 0 个（共 0 个））**将变为非零数字。如果具有任何匹配项，编辑器将转到第一个匹配项。如果具有多个匹配项，要转到下一个匹配项，请选择 **Find（查找）**框中的右箭头，或者在菜单栏上选择 **Find > Find Next（查找 > 查找下一个）**。要转到上一个匹配项，请选择 **Find（查找）**框中的左箭头，或者在菜单栏上选择 **Find > Find Previous（查找 > 查找上一个）**。

1. 要将当前匹配项替换为 **Replace With（替换为）**中的文本，然后转到下一个匹配项，请选择 **Replace（替换）**。要将所有匹配项替换为 **Replace With（替换为）**中的文本，请选择 **Replace All（全部替换）**。

## 查找多个文件中的文本
<a name="find-replace-text-find-multiple"></a>

1. 在菜单栏上，选择 **Find > Find in Files（查找 > 在文件中查找）**。

1. 在查找和替换栏中，为 **Find（查找）**键入要查找的文本。

1. 要指定额外的查找选项，请参阅[查找和替换选项](#find-replace-text-replace-options)。

1. 在 **Find（查找）**按钮右侧的框（带有 `*.*, -.*` 的框）中，键入要在查找中包括或排除的任何一组文件。例如：
   + 空白、`*` 或 `*.*`：查找所有文件。
   +  `my-file.txt`：仅查找名为 `my-file.txt` 的文件。
   +  `my*`：仅查找文件名以 `my` 开头的文件。
   +  `my*.txt`：仅查找文件名以 `my` 开头并具有 `.txt` 文件扩展名的文件。
   +  `my*.htm*`：查找文件名以 `my` 开头并且文件扩展名以 `.htm` 开头的所有文件。
   +  `my*.htm, my*.html`：查找文件名以 `my` 开头并具有 `.htm` 或 `.html` 文件扩展名的所有文件。
   +  `-my-file.txt`：不搜索名为 `my-file.txt` 的文件。
   +  `-my*`：不搜索以 `my` 开头的任何文件。
   +  `-my*.htm*`：不搜索文件名以 `my` 开头并且文件扩展名以 `.htm` 开头的任何文件。
   +  `my*.htm*, -my*.html`：搜索文件名以 `my` 开头并且文件扩展名以 `.htm` 开头的所有文件。不过，不会搜索文件名以 `my` 开头并具有 `.html` 文件扩展名的任何文件。

1. 在上述框旁边的下拉列表中，选择以下选项之一以进一步将查找限制为仅特定的位置：
   +  **Environment（环境）**：仅查找 **Environment（环境）**窗口中的文件。
   +  **Project (excludes .gitignore'd)（项目（不包括 .gitignore））**：查找环境中的任何文件，但环境的 `.gitignore` 文件中列出的文件或文件类型除外 (如果 `.gitignore` 文件存在)。
   +  **Selection:（选择：）**：仅查找当前在 **Environment（环境）**窗口中选择的文件。
**注意**  
要进一步将查找限制为仅单个文件夹，请在 **Environment（环境）**窗口中选择一个文件夹，然后选择 **Selection（选择内容）**。或者，您也可以在 **Environment（环境）**窗口中右键单击该文件夹，然后在上下文菜单中选择 **Search In This Folder（在该文件夹中搜索）**。
   +  **Favorites（收藏夹）**：仅查找 **Environment（环境）**窗口的 **Favorites（收藏夹）**列表中的文件。
   +  **Active File（活动文件）**：仅查找活动文件。
   +  **Open Files（打开的文件）**：仅查找 **Environment（环境）**窗口的 **Open Files（打开的文件）**列表中的文件。

1. 选择 **Find（查找）**。

1. 要转到包含匹配项的文件，请在 **Search Results（搜索结果）**选项卡上双击该文件名。要转到特定的匹配项，请在 **Search Results（搜索结果）**选项卡中双击该匹配项。

## 替换多个文件中的文本
<a name="find-replace-text-replace-multiple"></a>

1. 在菜单栏上，选择 **Find > Find in Files（查找 > 在文件中查找）**。

1. 在查找和替换栏中，为 **Find（查找）**键入要查找的文本。

1. 要指定额外的查找选项，请参阅[查找和替换选项](#find-replace-text-replace-options)。

1. 在 **Find（查找）**按钮右侧的框（带有 `*.*, -.*` 的框）中，键入要在查找中包括或排除的任何一组文件。例如：
   + 空白、`*` 或 `*.*`：所有文件。
   +  `my-file.txt`：仅名为 `my-file.txt` 的文件。
   +  `my*`：仅文件名以 `my` 开头的文件。
   +  `my*.txt`：仅文件名以 `my` 开头并具有 `.txt` 文件扩展名的文件。
   +  `my*.htm*`：文件名以 `my` 开头并且文件扩展名以 `.htm` 开头的所有文件。
   +  `my*.htm, my*.html`：文件名以 `my` 开头并具有 `.htm` 或 `.html` 文件扩展名的所有文件。
   +  `-my-file.txt`：不搜索名为 `my-file.txt` 的文件。
   +  `-my*`：不搜索以 `my` 开头的任何文件。
   +  `-my*.htm*`：不搜索文件名以 `my` 开头并且文件扩展名以 `.htm` 开头的任何文件。
   +  `my*.htm*, -my*.html`：搜索文件名以 `my` 开头并且文件扩展名以 `.htm` 开头的所有文件。不过，不会搜索文件名以 `my` 开头并具有 `.html` 文件扩展名的任何文件。

1. 在上述框旁边的下拉列表中，选择以下选项之一以进一步将查找限制为仅特定的位置：
   +  **Environment（环境）**：仅 **Environment（环境）**窗口中的文件。
   +  **Project (excludes .gitignore'd)（项目（不包括 .gitignore））**：查找环境中的任何文件，但环境的 `.gitignore` 文件中列出的文件或文件类型除外（如果 `.gitignore` 文件存在）。
   +  **Selection（选择内容）**：仅当前选择的文件。
   +  **Favorites（收藏夹）**：仅 **Environment（环境）**窗口的 **Favorites（收藏夹）**列表中的文件。
   +  **Active File（活动文件）**：仅活动文件。
   +  **Open Files（打开的文件）**：仅 **Environment（环境）**窗口的 **Open Files（打开的文件）**列表中的文件。

1. 对于 **Replace With（替换为）**，请键入要将 **Find（查找）**内容替换为的文本。

1. 选择 **Replace（替换）**。
**注意**  
将在范围内的所有文件中立即执行替换操作。无法方便地撤消该操作。如果要在开始执行替换操作之前了解将更改的内容，请选择 **Find（查找）**。

1. 要转到包含替换内容的文件，请在 **Search Results（搜索结果）**选项卡中双击该文件名。要转到特定的替换内容，请在 **Search Results（搜索结果）**窗格中双击该替换内容。

## 查找和替换选项
<a name="find-replace-text-replace-options"></a>

可以在查找和替换栏上选择任何以下按钮以修改查找和替换操作。

![\[在单个文件中搜索\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-search-single.png)


![\[在多个文件中搜索\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-search-multiple.png)

+  **Regular Expressions（正则表达式）**：查找与 **Find（查找）**或 **Find in Files（在文件中查找）**中指定的正则表达式匹配的文本。请参阅 Mozill [a 开发者网络*JavaScript 正则表达式*主题中的编写正则表达式模式](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Writing_a_regular_expression_pattern)。
+  **Match Case（匹配大小写）**：查找与 **Find（查找）**或 **Find in Files（在文件中查找）**中指定的大小写匹配的文本。
+  **Whole Words（整个单词）**：使用标准单词字符规则查找 **Find（查找）**或 **Find in Files（在文件中查找）**中的文本。
+  **Wrap Around（折回）**：仅限单个文件，在转到下一个或上一个匹配项时，不要在文件末尾或开头处停止。
+  **Search Selection（搜索选择内容）**：仅限单个文件，仅在选择内容中查找。
+  **Show in Console（在控制台中显示）**：对于多个文件，在**控制台**中显示 **Search Results（搜索结果）**选项卡，而不是在活动窗格中显示。
+  **Preserve Case（保留大小写）**：仅限单个文件，在替换文本时，保留大小写（如果适用）。

# 在 IDE 中预览文件 AWS Cloud9
<a name="file-preview"></a>

您可以使用 AWS Cloud9 IDE 在 IDE 中预览 AWS Cloud9 开发环境中的文件。
+  [打开要预览的文件](#file-preview-file-open) 
+  [重新加载文件预览](#file-preview-file-reload) 
+  [更改文件预览类型](#file-preview-file-preview-type) 
+  [在单独的 Web 浏览器标签页中打开文件预览](#file-preview-file-open-tab) 
+  [切换到其他文件预览](#file-preview-file-switch) 

## 打开要预览的文件
<a name="file-preview-file-open"></a>

在 AWS Cloud9 IDE 中选择以下选项之一，在环境中打开文件预览选项卡：
+ 在**环境**窗口中，打开要预览文件的上下文（右键单击）菜单，然后选择**预览**。
**注意**  
虽然可以使用此方法来预览任何文件，但带有以下文件扩展名的文件最适合预览：  
 `.htm` 
 `.html` 
 `.pdf` 
 `.svg` 
 `.xhtml` 
包含 Markdown 格式的内容的任何文件。
+ 打开带有下列文件扩展名之一的文件：
  +  `.pdf` 
  +  `.svg` 
+ 在打开并已激活您要预览的文件后，在菜单栏上依次选择 **Preview（预览）、Preview File FILE\$1NAME（预览文件 FILE\$1NAME）**。或者依次选择 **Tools（工具）、Preview（预览）、Preview File FILE\$1NAME（预览文件 FILE\$1NAME）**，其中 **FILE\$1NAME** 是要预览的文件的名称。
**注意**  
这些命令仅适用于以下文件类型：  
 `.htm` 
 `.html` 
 `.markdown` 
 `.md` 
 `.pdf` 
 `.svg` 
 `.txt`：如果文件内容是 Markdown 格式，则预览效果最好。
 `.xhtml`：如果文件包含或引用内容展示信息，则预览效果最好。

**注意**  
文件预览标签页的 **Preview Settings（预览设置）**菜单当前不起作用，选择其中的任何菜单命令都无效。

## 重新加载文件预览
<a name="file-preview-file-reload"></a>

在文件预览标签页上，选择 **Refresh（刷新）**按钮（圆形箭头）。

## 更改文件预览类型
<a name="file-preview-file-preview-type"></a>

在文件预览标签页上，从预览类型列表中选择以下选项之一：
+  **Browser（浏览器）**：以 Web 浏览器格式预览文件，仅适用于以下文件类型：
  +  `.htm` 
  +  `.html` 
  +  `.pdf` 
  +  `.svg` 
  +  `.xhtml`：如果文件包含或引用内容展示信息，则预览效果最好。
+  **Raw Content (UTF-8)（原始内容 (UTF-8)）**：使用 Unicode 转换格式 8 位 (UTF-8) 格式预览文件的原始内容。对于某些文件类型，显示的内容可能不正常。
+  **Markdown**：预览包含 Markdown 格式的任何文件。尝试预览任何其他文件类型，但可能显示的内容不正常。

## 在单独的 Web 浏览器标签页中打开文件预览
<a name="file-preview-file-open-tab"></a>

在文件预览标签页上，选择 **Pop Out Into New Window（在新的弹出窗口中显示）**。

## 切换到其他文件预览
<a name="file-preview-file-switch"></a>

在文件预览标签页上，在地址栏中键入指向不同文件的路径。地址栏位于 **Refresh（刷新）**按钮和预览类型列表之间。

# 在 IDE 中预览正在运行的 AWS Cloud9 应用程序
<a name="app-preview"></a>

您可以使用 AWS Cloud9 集成开发环境 (IDE) 在 IDE 中预览正在运行的应用程序。

## 运行应用程序
<a name="app-preview-run-app"></a>

必须先在 AWS Cloud9 开发环境中运行应用程序，然后才能在 IDE 中预览应用程序。它必须通过以下端口使用 HTTP：
+ `8080`
+ `8081`
+ `8082`

以上所有端口都必须使用 IP 地址 `127.0.0.1`、`localhost` 或 `0.0.0.0`。

**注意**  
您无需使用 HTTP 通过端口 `8080`、`8081` 或 `8082`，IP 地址 `127.0.0.1`、`localhost` 或 `0.0.0.0` 来运行应用程序。不过，如果您不这样做，就将无法从 IDE 中预览运行的应用程序。

**注意**  
预览应用程序在 IDE 中运行并加载在 iframe 元素中。默认情况下，某些应用程序服务器可能会阻止来自 iframe 元素（例如标头）的 X-Frame-Options请求。如果您的预览应用程序未显示在预览标签页中，请确保您的应用程序服务器不禁止在 iframe 中显示内容。

要编写代码以在特定端口和 IP 地址上运行您的应用程序，请参阅您的应用程序文档。

要运行您的应用程序，请参阅[运行代码](build-run-debug.md#build-run-debug-run)。

要测试此行为，请将以下 JavaScript 代码添加到环境根目录`server.js`中命名的文件中。该代码使用名为 Node.js 的文件运行服务器。

**注意**  
在以下示例中，`text/html` 是所返回内容的 `Content-Type`。要以不同的格式返回内容，请指定不同的 `Content-Type`。例如，您可以对 CSS 文件格式指定 `text/css`。

```
var http = require('http');
var fs = require('fs');
var url = require('url');

http.createServer( function (request, response) {
  var pathname = url.parse(request.url).pathname;
  console.log("Trying to find '" + pathname.substr(1) + "'...");

  fs.readFile(pathname.substr(1), function (err, data) {
    if (err) {
      response.writeHead(404, {'Content-Type': 'text/html'});
      response.write("ERROR: Cannot find '" + pathname.substr(1) + "'.");
      console.log("ERROR: Cannot find '" + pathname.substr(1) + "'.");
    } else {
      console.log("Found '" + pathname.substr(1) + "'.");
      response.writeHead(200, {'Content-Type': 'text/html'});
      response.write(data.toString());
    }
    response.end();
  });
}).listen(8080, 'localhost'); // Or 8081 or 8082 instead of 8080. Or '127.0.0.1' instead of 'localhost'.
```

在环境根目录下，您可以将以下 Python 代码添加到名为 `server.py` 的文件中。在以下示例中，服务器使用 Python 运行。

```
import os
import http.server
import socketserver

ip = 'localhost' # Or '127.0.0.1' instead of 'localhost'.
port = '8080' # Or '8081' or '8082' instead of '8080'.
Handler = http.server.SimpleHTTPRequestHandler
httpd = socketserver.TCPServer((ip, int(port)), Handler)
httpd.serve_forever()
```

在环境根目录下，将以下 HTML 代码添加到名为 `index.html` 的文件中。

```
<html>
  <head>
    <title>Hello Home Page</title>
  </head>
  <body>
    <p style="font-family:Arial;color:blue">Hello, World!</p>
  </body>
</html>
```

要在应用程序预览标签页上查看该文件的 HTML 输出，请使用 Node.js 运行 `server.js`，或使用 Python 运行 `server.py` 文件。然后请按照下一节中的步骤预览它。在应用程序预览标签页上，将 `/index.html` 添加到 URL 末尾，然后按 `Enter`。

## 预览运行的应用程序
<a name="app-preview-preview-app"></a>

在预览您的应用程序之前，请确认以下事项：
+ 您的应用程序使用 HTTP 协议通过端口 `8080`、`8081` 或 `8082` 运行。
+ 您的应用程序在环境中的 IP 地址是 `127.0.0.1`、`localhost` 或 `0.0.0.0`。
+ 您的应用程序代码文件已在 AWS Cloud9 IDE 中打开并处于活动状态。

确认所有这些详细信息后，从菜单栏中选择以下选项之一：
+  **Preview (预览)、Preview Running Application (预览运行的应用程序)** 
+  **Tools (工具)、Preview (预览)、Preview Running Application (预览运行的应用程序)** 

这些选项之一在环境中打开应用程序预览标签页，然后在标签页上显示应用程序的输出。

**注意**  
如果应用程序预览标签页显示错误或空白，请执行 [应用程序预览选项卡显示错误或空白](troubleshooting.md#troubleshooting-app-preview) 中的故障排除步骤。如果您在尝试预览应用程序或文件时收到以下通知：*“预览功能已禁用，因为您的浏览器禁用了第三方 cookie”*，请按照[应用程序预览或文件预览通知：“Third-party cookies disabled（第三方 cookie 已禁用）”](troubleshooting.md#troubleshooting-preview)中的故障排除步骤进行操作。

**注意**  
如果该应用程序尚未运行，将会在应用程序预览标签页上显示错误。要解决此问题，请运行或重新启动该应用程序，然后再次选择菜单栏命令。  
例如，假设您的应用程序无法在任何端口或 IPs提及的任何端口上运行。或者，您的应用程序必须同时在多个端口上运行。例如，您的应用程序必须同时在端口 `8080` 和 `3000` 上运行。如果是这样，则应用程序预览标签页可能会显示错误或为空。这是因为环境中的应用程序预览选项卡仅适用于前面的端口和 IPs。此外，该应用程序一次只能使用一个端口。  
我们建议不要与其他人共享应用程序预览标签页中的 URL。(网址采用以下格式:`https://12a34567b8cd9012345ef67abcd890e1.vfs.cloud9.us-east-2.amazonaws.com/`. 在这种格式中，`12a34567b8cd9012345ef67abcd890e1`是 AWS Cloud9 分配给环境的 ID。 `us-east-2`是环境 AWS 区域 的 ID。） 仅当环境的 IDE 处于打开状态并且应用程序正在同一个 Web 浏览器中运行时，此 URL 才有用。  
如果您尝试使用 IDE 中的应用程序预览选项卡或`0.0.0.0`在 IDE 之外的单独的 Web 浏览器选项卡中访问、或的 IP，则默认情况下， AWS Cloud9 IDE 会尝试访问您的本地计算机，而不是连接到环境的实例或您自己的服务器。`127.0.0.1` `localhost`

有关如何在 IDE 之外向其他人提供正在运行的应用程序预览的说明，请参阅[通过互联网共享运行的应用程序](app-preview-share.md)。

# 重新加载应用程序预览
<a name="app-preview-app-reload"></a>

要重新加载应用程序预览，请选择以下选项：

在应用程序预览选项卡上，选择 **Refresh（刷新）**按钮（圆形箭头）。

**注意**  
该命令不会重新启动服务器。它仅刷新应用程序预览标签页的内容。

# 更改应用程序预览类型
<a name="app-preview-app-preview-type"></a>

要更改应用程序预览类型，请选择以下选项：

在应用程序预览标签页上，在预览类型列表中选择以下选项之一：
+  **Browser（浏览器）**：以 Web 浏览器格式预览输出。
+  **Raw Content (UTF-8)（原始内容 (UTF-8)）**：尝试以 Unicode 转换格式 8 位 (UTF-8) 格式预览输出（如果适用）。
+  **Markdown**：尝试以 Markdown 格式（如果适用）预览输出。

# 在单独的 Web 浏览器标签页中打开应用程序预览
<a name="app-preview-app-open-tab"></a>

要在单独的 Web 浏览器标签页中打开应用程序预览，请选择以下选项：

在应用程序预览选项卡上，选择 **Pop Out Into New Window（在新的弹出窗口中显示）**。

**注意**  
**** AWS Cloud9 IDE 还必须在同一 Web 浏览器的至少一个其他选项卡中运行。否则，应用程序预览不会在单独的 Web 浏览器标签页中显示。  
 AWS Cloud9 IDE 还必须在同一 Web 浏览器的至少一个其他选项卡中运行。否则，应用程序预览不会在单独的 Web 浏览器标签页中显示。如果应用程序预览标签页显示错误或空白，请执行 [应用程序预览或文件预览通知：“Third-party cookies disabled（第三方 cookie 已禁用）”](troubleshooting.md#troubleshooting-preview) 中的故障排除步骤。

# 切换到不同的预览 URL
<a name="app-preview-url-switch"></a>

要切换到不同的预览 URL，请选择以下选项：

在应用程序预览标签页上，在地址栏中键入不同 URL 的路径。地址栏位于 **Refresh（刷新）**按钮和预览类型列表之间。

# 通过互联网共享运行的应用程序
<a name="app-preview-share"></a>

在预览运行的应用程序后，您可以通过 Internet 为其他人提供该应用程序。

如果 Amazon EC2 实例已连接到您的环境，请执行以下步骤。否则，请查阅您的服务器的文档。

**Topics**
+ [步骤 1：获取实例的 ID 和 IP 地址](#app-preview-share-get-metadata)
+ [步骤 2：为实例设置安全组](#app-preview-share-security-group)
+ [步骤 3：为实例设置子网](#app-preview-share-subnet)
+ [步骤 4：共享运行的应用程序 URL](#app-preview-share-url)

## 步骤 1：获取实例的 ID 和 IP 地址
<a name="app-preview-share-get-metadata"></a>

在该步骤中，请记下连接到环境的 Amazon EC2 实例的实例 ID 和公有 IP 地址。您需要在后面的步骤中使用实例 ID 以允许传入应用程序请求。然后，与其他人分享该公有 IP 地址，以便他们可以访问运行的应用程序。

1. 获取 Amazon EC2 实例的 ID。要获取该 ID，请执行下列操作之一：
   + 在 AWS Cloud9 IDE 环境的终端会话中，运行以下命令以获取 Amazon EC2 实例的 ID。

     ```
     curl http://169.254.169.254/latest/meta-data/instance-id
     ```

     实例 ID 采用以下格式：`i-12a3b456c789d0123`。记下该实例 ID。
   + 在环境的 IDE 中，在菜单栏上选择您的用户图标，然后选择 **Manage EC2 Instance（管理 EC2 实例）**。  
![\[选择从 AWS Cloud9 IDE 中管理实例\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/console-manage-instance.png)

     在显示的 Amazon EC2 控制台中，记下在 **Instance ID（实例 ID）**列中显示的实例 ID。实例 ID 采用以下格式：`i-12a3b456c789d0123`。

1. 获取 Amazon EC2 实例的公有 IP 地址。要获取该 ID，请执行下列操作之一：
   + 在环境的 IDE 中，在菜单栏上选择 **Share（共享）**。在 **Share this environment（共享此环境）**对话框中，记下 **Application（应用程序）**框中的公有 IP 地址。公有 IP 地址采用以下格式：`192.0.2.0`。
   + 在环境 IDE 的终端会话中，运行以下命令以获取 Amazon EC2 实例的公有 IP 地址。

     ```
     curl http://169.254.169.254/latest/meta-data/public-ipv4
     ```

     公有 IP 地址采用以下格式：`192.0.2.0`。记下该公有 IP 地址。
   + 在环境的 IDE 中，在菜单栏上选择您的用户图标，然后选择 **Manage EC2 Instance（管理 EC2 实例）**。在显示的 Amazon EC2 控制台中，在**描述**选项卡上，记下公有 IP 字段的**IPv4 公有 IP** 地址。公有 IP 地址采用以下格式：`192.0.2.0`。
**注意**  
您的应用程序的公有 IP 地址可能会在应用程序的实例重启时发生变化。要防止您的 IP 地址发生变化，请分配弹性 IP 地址。然后，将该地址分配给正在运行的实例。有关更多信息，请参阅《Amazon EC2 用户指南》**中的[分配弹性 IP 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#using-instance-addressing-eips-allocating)和[将弹性 IP 地址与正在运行的实例关联起来](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#using-instance-addressing-eips-associating)。分配弹性 IP 地址可能会 AWS 账户 导致您产生费用。有关更多信息，请参阅 [Amazon EC2 定价](https://aws.amazon.com/ec2/pricing/)。

## 步骤 2：为实例设置安全组
<a name="app-preview-share-security-group"></a>

在此步骤中，在 Amazon EC2 控制台上，为连接到环境的实例设置 Amazon EC2 安全组。将其设置为允许通过端口 8080、8081 或 8082 传入 HTTP 请求。

**注意**  
您无需通过端口 `8080`、`8081` 或 `8082` 使用 HTTP 运行。如果您不这样做，将无法从 IDE 中预览运行的应用程序。有关更多信息，请参阅 [预览运行的应用程序](app-preview.md#app-preview-preview-app)。如果在不同的协议或端口上运行，请在该步骤中替换为该协议或端口。  
要提供额外的安全层，请为实例可使用的 VPC 中的子网设置网络访问控制列表 (ACL)。有关安全组和网络的更多信息 ACLs，请参阅以下内容：  
 [步骤 3：为实例设置子网](#app-preview-share-subnet) 
 *Amazon VPC 用户指南*中的[安全](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Security.html)
 *Amazon VPC 用户指南*中的[您的 VPC 安全组](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html)
 *亚马逊 VPC 用户指南 ACLs*中的@@ [网络](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)

1. 在环境的 IDE 中，在菜单栏上选择您的用户图标，然后选择 **Manage EC2 Instance（管理 EC2 实例）**。然后，跳到本过程的步骤 3。

1. 如果选择 **Manage EC2 Instance**（管理 EC2 实例）或者该过程中的其他步骤返回错误，请使用您的 AWS 账户中管理员的凭证登录到 Amazon EC2 控制台。然后按照以下说明进行操作。如果您无法执行此操作，请咨询您的 AWS 账户 管理员。

   1. 如果您尚未登录， AWS 管理控制台 请登录 “[https://console.aws.amazon.com/](https://console.aws.amazon.com/)”。

   1. 打开 Amazon EC2 控制台。为此，请在导航栏中选择 **Services**（服务）。然后选择 **EC2**。

   1. 在导航栏中，选择您的环境所在 AWS 区域 的位置。

   1. 如果显示 **EC2 控制面板**，请选择 **Running Instances（正在运行的实例）**。否则，在服务导航窗格中展开 **Instances**（实例）（如果尚未展开），然后选择 **Instances**（实例）。

   1. 在实例列表中，选择 **Instance ID**（实例 ID）与您之前记下的实例 ID 相匹配的实例。

1. 在实例的 **Description**（描述）选项卡中，选择 **Security groups**（安全组）旁边的安全组链接。

1. 在显示安全组的情况下，查看 **Inbound（入站）**选项卡。如果有一个规则，其中 **Type**（类型）设置为 **Custom Tcp Rule**（自定义 TCP 规则），**Port Range**（端口范围）设置为 **8080**、**8081** 或 **8082**，请选择 **Cancel**（取消），然后向前跳到[步骤 3：为实例设置子网](#app-preview-share-subnet)。否则，请选择 **Edit（编辑）**。

1. 在 **Edit inbound rules（编辑入站规则）**对话框中，选择 **Add Rule（添加规则）**。

1. 对于 **Type（类型）**，选择 **Custom TCP Rule（自定义 TCP 规则）**。

1. 对于 **Port Range**（端口范围），输入 `8080`、`8081` 或 `8082`。

1. 对于 **Source（源）**，请选择 **Anywhere（任何位置）**。
**注意**  
通过对 **Source**（源）选择 **Anywhere**（任何位置），则允许来自任何 IP 地址的传入请求。要将其限定为特定 IP 地址，请选择 **Custom**（自定义），然后输入 IP 地址范围。或者，请选择 **My IP**（我的 IP）将请求限制为仅来自您的 IP 地址。

1. 选择**保存**。

## 步骤 3：为实例设置子网
<a name="app-preview-share-subnet"></a>

使用 Amazon EC2 和 Amazon VPC 控制台为连接到环境的 Amazon EC2 实例设置子网。然后，允许通过端口 8080、8081 或 8082 传入 HTTP 请求。

**注意**  
您无需通过端口 `8080`、`8081` 或 `8082` 使用 HTTP 运行。不过，如果您不这样做，将无法从 IDE 中预览运行的应用程序。有关更多信息，请参阅 [预览运行的应用程序](app-preview.md#app-preview-preview-app)。如果在不同的协议或端口上运行，请在该步骤中替换为该协议或端口。  
该步骤介绍如何为实例可使用的 Amazon VPC 中的子网设置网络 ACL。这不是必须执行的，但建议执行。设置网络 ACL 可增加额外的安全层。有关网络的更多信息 ACLs，请参阅以下内容：  
 *Amazon VPC 用户指南*中的[安全](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Security.html)
 *亚马逊 VPC 用户指南 ACLs*中的@@ [网络](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html)

1. 在 Amazon EC2 控制台的服务导航窗格中，展开 **Instances**（实例）（如果尚未展开），然后选择 **Instances**（实例）。

1. 在实例列表中，选择 **Instance ID**（实例 ID）与您之前记下的实例 ID 相匹配的实例。

1. 在实例的 **Description（描述）** 选项卡中，记下 **Subnet ID（子网 ID）**值。子网 ID 采用以下格式：`subnet-1fab8aEX`。

1. 打开 Amazon VPC 控制台。为此，请在 AWS 导航栏中选择 “**服务**”，然后选择 **VPC**。

   对于此步骤，建议使用您的 AWS 账户中管理员的凭证登录到 Amazon VPC 控制台。如果您无法执行此操作，请咨询您的 AWS 账户 管理员。

1. 如果显示 **VPC Dashboard（VPC 控制面板）**，请选择 **Subnet（子网）**。否则，在服务导航窗格中，选择 **Subnets（子网）**。

1. 在子网列表中，选择 **Subnet ID**（子网 ID）值与您之前记下的子网 ID 相匹配的子网。

1. 在 **Summary**（摘要）选项卡上，选择 **Network ACL**（网络 ACL）旁边的网络 ACL 链接。

1. 在网络列表中 ACLs，选择网络 ACL。（只有一个网络 ACL。）

1. 查看网络 ACL 的 **Inbound Rules（入站规则）**选项卡。如果已有一个规则，其中 **Type（类型）**设置为 **HTTP\$1 (8080)**、**HTTP\$1 (8081)** 或 **HTTP\$1 (8082)**，请向前跳到 [步骤 4：共享运行的应用程序 URL](#app-preview-share-url)。否则，请选择 **Edit（编辑）**。

1. 选择 **Add another rule（添加其他规则）**。

1. 对于 **Rule \$1**（规则号），请输入该规则的编号（例如 `200`）。

1. 对于 **Type（类型）**，选择 **Custom TCP Rule（自定义 TCP 规则）**。

1. 对于 **Port Range（端口范围）**，请键入 `8080`、`8081` 或 `8082`。

1. 对于 **Source（源）**，请键入允许发送传入请求的 IP 地址范围。例如，要允许来自任何 IP 地址的传入请求，请输入 `0.0.0.0/0`。

1. 在将 **Allow/Deny（允许/拒绝）**设置为 **ALLOW（允许）** 的情况下，选择 **Save（保存）**。

## 步骤 4：共享运行的应用程序 URL
<a name="app-preview-share-url"></a>

应用程序运行后，您可以通过提供应用程序的 URL 与其他人共享您的应用程序。为此，您需要之前提到的公有 IP 地址。要编写应用程序的完整 URL，请确保使用正确的协议启动应用程序的公有 IP 地址。接下来，如果您的应用程序端口不是它所用协议的默认端口，请添加端口号信息。以下是一个示例应用程序 URL：`http://192.0.2.0:8080/index.html` 通过端口 8080 使用 HTTP。

如果出现的 Web 浏览器标签页显示错误或空白，请执行[无法显示在 IDE 以外运行的应用程序](troubleshooting.md#troubleshooting-app-sharing)中的故障排除步骤。

**注意**  
您的应用程序的公有 IP 地址可能会在应用程序的实例重启时发生变化。要禁止更改该 IP 地址，请分配弹性 IP 地址，然后将该地址分配给正在运行的实例。有关更多信息，请参阅《Amazon EC2 用户指南》**中的[分配弹性 IP 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#using-instance-addressing-eips-allocating)和[将弹性 IP 地址与正在运行的实例关联起来](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#using-instance-addressing-eips-associating)。分配弹性 IP 地址可能会 AWS 账户 导致您产生费用。有关更多信息，请参阅 [Amazon EC2 定价](https://aws.amazon.com/ec2/pricing/)。  
您无需使用 HTTP 通过端口 `8080`、`8081` 或 `8082` 运行应用程序。不过，如果您不这样做，将无法从 IDE 中预览运行的应用程序。有关更多信息，请参阅 [预览运行的应用程序](app-preview.md#app-preview-preview-app)。  
例如，假设来自 VPN 的请求会阻止通过请求的协议或端口的流量。然后，那些访问您的应用程序 URL 的请求可能会失败。必须从允许通过请求的协议和端口传输流量的不同网络发出请求。有关更多信息，请与您的网络管理员联系。  
建议不要与其他人共享 IDE 的应用程序预览标签页中的 URL。(此网址采用以下格式:`https://12a34567b8cd9012345ef67abcd890e1.vfs.cloud9.us-east-2.amazonaws.com/`. 在这种格式中，`12a34567b8cd9012345ef67abcd890e1`是 AWS Cloud9 分配给环境的 ID。 `us-east-2`是环境 AWS 区域 的 ID。） 仅当环境的 IDE 处于打开状态并且应用程序正在同一个 Web 浏览器中运行时，此 URL 才有用。

# 在 AWS Cloud9 IDE 中处理文件修订版
<a name="file-revisions"></a>

您可以使用 AWS Cloud9 集成开发环境 (IDE) 中的 “**文件修订历史记录**” 窗格来查看和管理 AWS Cloud9 EC2 开发环境中对文件的更改。“**文件修订历史记录**” 窗格不适用于 AWS Cloud9 SSH 开发环境中的文件。

![\[“File Revision History（文件修订历史记录）”窗格\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-file-revision.gif)


要显示文件的 **File Revision History（文件修订历史记录）**窗格，请在编辑器中打开文件。然后，在菜单栏上，选择 **File, Show File Revision History（文件、显示文件修订历史记录）**。

当您在环境中首次打开文件时，并且仅对于该环境，**File Revision History（文件修订历史记录）**窗格将在 IDE 中开始跟踪文件的修订历史记录。**File Revision History（文件修订历史记录）**窗格仅从编辑器本身跟进文件的修订。它不跟踪以任何其他方式对文件进行的修订（例如，通过终端、Git 或其他文件修订工具）。

在显示 **File Revision History（文件修订历史记录）**窗格时，您不能编辑文件。要隐藏窗格，请再次选择 **File, Show Revision History（文件、显示修订历史记录）**，或者选择窗格角上的 **X**（**Close timeslider（关闭时间滑块）**）。

要跳转到与文件保存操作关联的文件的版本，请选择修订滑块上方的 **File Saved on（文件保存于）**点。

![\[“File Revision History（文件修订历史记录）”中的文件保存点\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-file-revision-save.png)


要在修订滑块上，从当前选定的文件版本前进或后退一个版本，请选择一个步进箭头（**Step revision forward（向前步进一个版本）**或 **Step revision backward（向后步进一个版本）**）。

![\[在“File Revision History（文件修订历史记录）”窗格中向前和向后移动\]](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/ide-file-revision-move.png)


要从修订历史记录的开始一次自动前进一个版本到结尾，请选择播放按钮（**Playback file history（播放文件历史记录）**）。

要使当前选定的文件版本成为修订历史记录中的最新版本，请选择 **Revert（还原）**。

# 在 AWS Cloud9 IDE 中处理图像文件
<a name="images"></a>

您可以使用 AWS Cloud9 集成开发环境 (IDE) 来查看和编辑图像文件。
+  [查看或编辑图像](#images-view-edit) 
+  [调整图像大小](#images-resize) 
+  [裁剪图像](#images-crop) 
+  [旋转图像](#images-rotate) 
+  [翻转图像](#images-flip) 
+  [缩放图像](#images-zoom) 
+  [平滑图像](#images-smooth) 

## 查看或编辑图像
<a name="images-view-edit"></a>

在 AWS Cloud9 IDE 中，打开要查看或编辑的图像的文件。支持的图像文件类型包括：
+  `.bmp` 
+  `.gif`（仅查看）
+  `.ico`（仅查看）
+  `.jpeg` 
+  `.jpg` 
+  `.png` 
+  `.tiff` 

## 调整图像大小
<a name="images-resize"></a>

1. 在 IDE 中打开图像。

1. 在图像编辑栏中，选择 **Resize（调整大小）**。

1. 要更改图像宽度，请以像素为单位键入新的 **Width（宽度）**。或者选择 **Width（宽度）** 旁的 **-** 或 **\$1** 来更改当前宽度，一次一个像素。

1. 要更改图像高度，请以像素为单位键入新的 **Height（高度）**。或者选择 **Height（高度）** 旁的 **-** 或 **\$1** 来更改当前高度，一次一个像素。

1. 要保持图像的纵横比，请保留选中 **Maintain Aspect Ratio（保持纵横比）**。

1. 要确认图像的新大小，请在图像的编辑栏上查看宽度 (**W**) 和高度 (**H**)，以像素为单位。

1. 选择 **Resize（调整大小）**。

1. 要放弃调整大小，请在菜单栏上，依次选择 **Edit（编辑）**、**Undo（撤消）**。要保留新大小，请依次选择 **File（文件）**、**Save（保存）**。

## 裁剪图像
<a name="images-crop"></a>

1. 在 IDE 中打开图像。

1. 将指针滚动到您要保留的图像部分。

1. 要确认选定内容的尺寸，请在图像编辑栏上查看 **Selection（选定内容）**尺寸，如下所示：
   + 距离以像素为单位，从图像的左边缘到选定内容的左边缘 (**L**)
   + 距离以像素为单位，从图像的上边缘到选定内容的上边缘 (**T**)
   + 选定内容的宽度以像素为单位 (**W**)
   + 选定内容的高度以像素为单位 (**H**)

1. 在图像编辑栏中，选择 **Crop（裁剪）**。

1. 要放弃裁剪，请在菜单栏上依次选择 **Edit（编辑）**、**Undo（撤消）**。要保留新的裁剪图像，请依次选择 **File（文件）**、**Save（保存）**。

## 转动图像
<a name="images-rotate"></a>

1. 在 IDE 中打开图像。

1. 要逆时针转动图像，请在图像编辑栏上，选择 **Rotate 90 Degrees Left（向左转动 90 度）**。

1. 要顺时针转动图像，请在图像编辑栏上，选择 **Rotate 90 Degrees Right（向右转动 90 度）**。

1. 要放弃旋转，请在菜单栏上，依次选择 **Edit（编辑）**、**Undo（撤消）**。要保留新转动的图像，请依次选择 **File（文件）**、**Save（保存）**。

## 翻转图像
<a name="images-flip"></a>

1. 在 IDE 中打开图像。

1. 要水平翻转图像，请在图像编辑栏上，选择 **FlipH**。

1. 要垂直翻转图像，请在图像编辑栏上，选择 **FlipV**。

1. 要放弃翻转，请在菜单栏上，依次选择 **Edit（编辑）**、**Undo（撤消）**。要保留新翻转的图像，请依次选择 **File（文件）**、**Save（保存）**。

## 缩放图像
<a name="images-zoom"></a>

1. 在 IDE 中打开图像。

1. 在图像编辑栏中，选择可用的缩放因素之一（例如，**75%**、**100%** 或 **200%**）。

## 平滑图像
<a name="images-smooth"></a>

1. 在 IDE 中打开图像。

1. 在图像编辑栏中，选择 **Smooth（平滑）**以减少图像的像素化。要放弃平滑，请取消选择 **Smooth（平滑）**。

1. 在菜单栏上，依次选择 **File（文件）**、**Save（保存）**。

# 在 IDE 中使用生成器、运行器和调试器 AWS Cloud9
<a name="build-run-debug"></a>

*生成器*指示 AWS Cloud9 集成开发环境 (IDE) 如何生成项目的文件。*运行*器指示 AWS Cloud9 IDE 如何运行特定类型的文件。运行程序可使用*调试程序*来帮助找到文件源代码中的任何问题。

您可以通过以下方式使用 AWS Cloud9 IDE 来构建、运行和调试代码：
+ 使用生成器来生成您的项目文件。有关更多信息，请参阅[生成您的项目文件](#build-run-debug-build)。
+ 使用运行程序可运行（也可以调试）您的代码。有关更多信息，请参阅[内置的生成、运行和调试支持](#build-run-debug-supported)以及[运行代码](#build-run-debug-run)。
+ 更改一个内置运行程序的初始定义，以便通过不同方法运行（也可以调试）您的代码。有关更多信息，请参阅[更改内置运行程序](build-run-debug-change-runner.md)。
+ 使用具有自定义的文件名、命令行选项，调试模式、当前工作目录和环境变量组合的运行程序来运行（也可以调试）您的代码。有关更多信息，请参阅[创建运行配置](build-run-debug-create-run-config.md)。
+ 创建您自己的生成器或运行程序。有关更多信息，请参阅[创建生成器或运行程序](#build-run-debug-create-builder-runner)。

## 内置的生成、运行和调试支持
<a name="build-run-debug-supported"></a>

 AWS Cloud9 IDE 为构建、运行和调试多种语言的代码提供了内置支持。有关完整列表，请参阅[语言支持](language-support.md)。

内置的生成支持通过菜单栏上的 **Run（运行）**、**Build System（生成系统）**以及 **Run（运行）**、**Build（生成）**菜单命令提供。要添加对未列出的编程语言或工具的支持，请参阅[创建生成器或运行程序](#build-run-debug-create-builder-runner)。

内置的运行支持通过 **Run（运行）**按钮，菜单栏上的 **Run（运行）**、**Run With（运行方式）**以及 **Run（运行）**、**Run Configurations（运行配置）**菜单命令提供。要添加对未列出的编程语言或工具的支持，请参阅[创建生成器或运行程序](#build-run-debug-create-builder-runner)和[创建运行配置](build-run-debug-create-run-config.md)。

内置的调试支持通过 **Debugger（调试程序）**窗口提供。要显示 **Debugger（调试程序）** 窗口，请选择 **Debugger（调试程序）**按钮。如果 **Debugger（调试程序）** 按钮不可见，请在菜单栏上依次选择 **Window（窗口）**、**Debugger（调试程序）**。

## 生成您的项目文件
<a name="build-run-debug-build"></a>

1. 打开与要生成的代码对应的文件。

1. 在菜单栏上，依次选择 **Run（运行）、Build System（生成系统）**，然后选择要使用的生成器的名称（如果尚未选择）。如果未列出您要使用的生成器，请停止本过程，去完成[创建生成器或运行程序](#build-run-debug-create-builder-runner)中的步骤，然后再返回本过程。

1. 依次选择 **Run（运行）, Build（生成）**。

## 运行代码
<a name="build-run-debug-run"></a>

1. 如果尚未选择并打开与要运行的代码对应的文件，将该文件打开。

1. 在菜单栏上，选择下列项之一：
   + 要使用最匹配的内置运行程序来运行代码，请依次选择 **Run（运行）、Run（运行）**。如果找 AWS Cloud9 不到，则禁用此命令。
   + 要使用 AWS Cloud9 上次使用的运行配置运行代码，请选择**运行，最后运行**。
   + 要使用特定的运行程序运行代码，请依次选择 **Run（运行）、Run With（运行方式）**，然后选择运行程序的名称。如果未列出您要使用的运行程序，请停止本过程，去完成[创建生成器或运行程序](#build-run-debug-create-builder-runner)中的步骤，然后再返回到本过程。
   + 要使用具有文件名、命令行选项、调试模式、当前工作目录和环境变量的自定义组合的特定运行程序来运行代码，请依次选择 **Run（运行）、Run Configurations（运行配置）**，然后选择运行配置的名称。在显示的运行配置选项卡中，选择 **Runner: Auto（运行程序：自动）**，再选择要使用的运行程序，然后选择 **Run（运行）**。如果未列出您要使用的运行程序，请停止本过程，去完成[创建生成器或运行程序](#build-run-debug-create-builder-runner)中的步骤，然后再返回到本过程。

## 调试代码
<a name="build-run-debug-debug"></a>

1. 在代码对应的运行配置选项卡上，选择 **Run in Debug Mode（在调试模式下运行）**。白色背景上的错误图标会变成绿色。有关更多信息，请参阅[运行代码](#build-run-debug-run)和[创建运行配置](build-run-debug-create-run-config.md)。

1. 在代码中设置在运行期间暂停的任何断点，如下所示：

   1. 打开要在其中设置断点的每个文件。

   1. 在文件中要设置断点的每个点，选择其行号左侧间距中的空白区域。会显示红色圆圈。

      要删除断点，请选择间距中的现有断点。

      要禁用断点而不是删除它，请在 **Debugger（调试程序）** 窗口的 **Breakpoints（断点）** 中，清除要禁用的断点对应的框。要重新启用断点，请选中清除的框。

      要一次性禁用所有断点，请在 **Debugger（调试程序）** 窗口中选择 **Deactivate All Breakpoints（停用所有断点）**。要重新启用所有断点，请选择 **Activate All Breakpoints（激活所有断点）**。

      如果 **Debugger（调试程序）** 窗口不可见，则选择 **Debugger（调试程序）**按钮。如果 **Debugger（调试程序）** 按钮不可见，则在菜单栏上选择 **Window（窗口）**、**Debugger（调试程序）**。

1. 在暂停运行的点设置要为其获取值的任何监视表达式，如下所示：

   1. 在 **Debugger（调试程序）** 窗口中，在 **Watch Expressions（监视表达式）**中选择 **Type an expression here（在此处键入表达式）**。

   1. 键入要监视的表达式，然后按 `Enter`。

      要更改现有的监视表达式，请右键单击对应监视表达式，然后选择 **Edit Watch Expression（编辑监视表达式）**。键入更改，然后按 `Enter`。

      要删除现有的监视表达式，请右键单击对应监视表达式，然后选择 **Remove Watch Expression（删除监视表达式）**。

1. 按照[运行代码](#build-run-debug-run)中所述，运行您的代码。

每当运行暂停时，也可以将指针暂停在显示的任意一段代码（例如，变量）上，以便在工具提示中显示有关该端代码的所有可用信息。

# 更改内置运行程序
<a name="build-run-debug-change-runner"></a>

此步骤说明如何更改一个内置运行程序的初始定义，以便通过不同方法运行（也可以调试）您的代码。

1. 在菜单栏上，依次选择 **Run（运行）、Run With（运行方式）**，然后选择您要更改的内置运行程序。

1. 在显示的运行配置选项卡上，选择 **Stop（停止）**，将试图运行代码的运行程序停止。

1. 选择 **Runner: My Runner（运行程序：我的运行程序）**，其中 **My Runner（我的运行程序）**是要更改的运行程序的名称，然后选择 **Edit Runner（编辑运行程序）**。

1. 在显示的 **My Runner.run** 选项卡上，更改运行程序的当前定义。请参阅[定义生成器或运行程序](build-run-debug-define-builder-runner.md)。

1. 依次选择 **File（文件）、Save As（另存为）**。将同名文件 (M **y Runner.run**) 保存在`my-environment/.c9/runners`目录中，其中`my-environment`是您的 AWS Cloud9 开发环境的名称。

**注意**  
您对内置运行程序所做的任何更改都仅应用于您在其中进行这些更改的环境。要将更改应用于单独的环境，请打开其他环境，然后按照以上步骤打开、编辑和保存对相关内置运行程序进行的那些相同更改。

# 创建运行配置
<a name="build-run-debug-create-run-config"></a>

此步骤说明如何使用具有自定义的文件名、命令行选项，调试模式、当前工作目录和环境变量组合的运行程序来运行（也可以调试）您的代码。

在菜单栏上依次选择 **Run（运行）、Run Configurations（运行配置）和 New Run Configuration（新建运行配置）**。在显示的运行配置选项卡上，执行以下操作：

1. 在 **Run（运行）** 和 **Restart（重启）**旁的框中，键入在 **Run（运行）、Run Configurations（运行配置）** 菜单上将为该运行配置显示的名称。

1. 在 **Command（命令）**框中，键入要使用的任何自定义命令行选项。

1. 要让此运行配置使用运行程序的预定义调试设置，请选择 **Run in Debug Mode（在调试模式下运行）**。白色背景上的错误图标会变成绿色。

1. 要让此运行配置使用特定的工作目录，请选择 **CWD** 并选择要使用的目录，然后选择 **Select（选择）**。

1. 要让此运行配置使用特定的环境变量，请选择 **ENV**，然后键入每个环境变量的名称和值。

要使用该运行配置，请打开与要运行的代码对应的文件。在菜单栏上依次选择 **Run（运行）、Run Configurations（运行配置）**，然后选择此运行配置的名称。在显示的运行配置选项卡中，选择 **Runner: Auto（运行程序：自动）**，再选择要使用的运行程序，然后选择 **Run（运行）**。

**注意**  
您创建的所有运行配置仅应用于您在其中创建运行配置的环境。要为单独的环境添加该运行配置，请打开其他环境，然后按照以上步骤在该环境中创建相同的运行配置。

## 创建生成器或运行程序
<a name="build-run-debug-create-builder-runner"></a>

此步骤说明如何创建自己的生成器或运行程序。

1. 要创建生成器，请在菜单栏上依次选择 **Run（运行）、Build System（生成系统）、New Build System（新建生成系统）**。要创建运行程序，请在菜单栏上依次选择 **Run（运行）、Run With（运行方式）、New Runner（新建运行程序）**。

1. 在显示的生成器选项卡（标记为 **My Builder.build**）或运行程序选项卡（标记为 **My Runner.run**）上，定义生成器或运行程序。请参阅[定义生成器或运行程序](build-run-debug-define-builder-runner.md)。

1. 定义生成器或运行程序后，依次选择 **File（文件）、Save As（另存为）**。对于生成器，使用 `.build` 扩展名将文件保存在 `my-environment/.c9/builders` 目录中，其中 `my-environment` 是环境的名称。对于运行程序，使用 `.run` 文件扩展名将文件保存在 `my-environment/.c9/runners` 目录中，其中 `my-environment` 是环境的名称。您指定的文件名将是在 **Run（运行）、Build System（生成系统）**菜单（对于生成器）或者 **Run（运行）、Run With（运行方式）**菜单（对于运行程序）上显示的名称。因此，除非您指定不同的文件名，否则默认显示的名称将是 **My Builder（我的生成器）**（对于生成器）或 **My Runner（我的运行程序）**（对于运行程序）。

要使用此生成器或运行程序，请参阅[生成项目文件](#build-run-debug-build)或[运行代码](#build-run-debug-run)。

**注意**  
您创建的任何生成器或运行程序仅适用于您在其中创建该生成器或运行程序的环境。要为单独的环境添加该运行生成器或运行程序，请打开其他环境，然后按照以上步骤在该环境中创建相同的生成器或运行程序。

# 定义生成器或运行程序
<a name="build-run-debug-define-builder-runner"></a>

本主题说明如何定义生成器或运行程序。定义生成器或运行程序之前，请确保已[创建生成器或运行程序](build-run-debug.md#build-run-debug-create-builder-runner)。



在显示的生成器或运行程序选项卡上，使用 JSON 定义运行程序或生成器。使用以下代码开头的模板。

对于生成器，使用以下代码开头。

```
{
  "cmd": [],
  "info": "",
  "env": {},
  "selector": ""
}
```

对于运行程序，使用以下代码开头。

```
{
  "cmd": [],
  "script": "",
  "working_dir": "",
  "info": "",
  "env": {},
  "selector": "",
  "debugger": "",
  "debugport": ""
}
```

在以上代码中：
+  `cmd`：表示要作为单个命令运行的 AWS Cloud9 以逗号分隔的字符串列表。

   AWS Cloud9 运行此命令时，列表中的每个字符串将用一个空格分隔。例如， AWS Cloud9 将`$file`以 a `"cmd": [ "ls", "$file", "$args"]` s 运行`ls $file $args`， AWS Cloud9 where 将替换为当前文件的完整路径以及在`$args`文件名后输入的任何参数。有关更多信息，请参阅本节后面所支持变量的列表。
+  `script`：代表运行程序在终端执行的 bash 脚本 (也可以根据需要，将其指定为行阵列以保证可读性)。
+  `working_dir`：代表运行程序将从中运行的目录。
+  `info`：代表在开始运行时，要向用户显示的任何文本字符串。此字符串可以包含变量`Running $project_path$file_name...`，例如，其中 AWS Cloud9 将`$project_path`替换为当前文件的目录路径和`$file_name`当前文件的名称部分。请参阅本节后面所支持变量的列表。
+  `env`: 表示 AWS Cloud9 要使用的任何命令行参数数组，例如：

  ```
  "env": {
    "LANG": "en_US.UTF-8",
    "SHLVL": "1"
  }
  ```
+  `selector`: 表示您 AWS Cloud9 要用来标识适用于此运行器的文件名的任何正则表达式。例如，您可以为 Python 文件指定 `source.py`。
+  `debugger`: 表示您 AWS Cloud9 要使用的与该运行器兼容的任何可用调试器的名称。例如，您可以为 V8 调试程序指定 `v8`。
+  `debugport`：表示调试期间 AWS Cloud9 要使用的端口号。例如，您可以指定 `15454` 作为要使用的端口号。

下表给出您可以使用的变量。


****  

|  **变量**  |  **描述**  | 
| --- | --- | 
|   `$file_path`   |  当前文件的目录，例如，`/home/ec2-user/environment` 或 `/home/ubuntu/environment`。  | 
|   `$file`   |  当前文件的完整路径，例如，`/home/ec2-user/environment/hello.py` 或 `/home/ubuntu/environment/hello.py`。  | 
|   `$args`   |  在文件名之后输入的任何参数，例如，`"5" "9"`。  | 
|   `$file_name`   |  当前文件的名称部分，例如，`hello.py`。  | 
|   `$file_extension`   |  当前文件的扩展名，例如，`py`。  | 
|   `$file_base_name`   |  当前文件的名称（不带扩展名），例如，`hello`。  | 
|   `$packages`   |  程序包文件夹的完整路径。  | 
|   `$project`   |  当前项目文件夹的完整路径。  | 
|   `$project_path`   |  当前项目文件的目录，例如，`/home/ec2-user/environment/` 或 `/home/ubuntu/environment/`。  | 
|   `$project_name`   |  当前项目文件的名称（不带扩展名），例如，`my-demo-environment`。  | 
|   `$project_extension`   |  当前项目文件的扩展名。  | 
|   `$project_base_name`   |  当前项目文件的名称（不带扩展名）。  | 
|   `$hostname`   |  环境的主机名，例如，`192.0.2.0`。  | 
|   `$hostname_path`   |  环境的主机名，包含指向项目文件的相对路径，例如，`https://192.0.2.0/hello.js`。  | 
|   `$url`   |  用于访问环境的完整 URL，例如，`https://192.0.2.0.`。  | 
|   `$port`   |  分配给环境的端口，例如，`8080`。  | 
|   `$ip`   |  为环境运行进程的 IP 地址，例如，`0.0.0.0`。  | 

举例来说，名为 `G++.build` 的以下生成器文件为 GCC 定义一个生成器，它运行 **`g++`** 命令以及 `-o` 选项以将当前文件（例如 `hello.cpp`）编译到对象模块中。然后，它将对象模块链接到与当前文件使用相同名称（例如，`hello`）的程序中。以下命令具有等效作用：`g++ -o hello hello.cpp`。

```
{
  "cmd": [ "g++", "-o", "$file_base_name", "$file_name" ],
  "info": "Compiling $file_name and linking to $file_base_name...",
  "selector": "source.cpp"
}
```

再举一个例子，名为 `Python.run` 的以下运行程序文件定义一个运行程序，它使用 Python 以及提供的所有参数运行当前文件。例如，如果当前文件名为 `hello.py` 且提供了 `5` 和 `9` 参数，则等效命令是 `python hello.py 5 9`。

```
{
  "cmd": [ "python", "$file_name", "$args" ],
  "info": "Running $file_name...",
  "selector": "source.py"
}
```

最后，名为 `Print Run Variables.run` 的以下运行程序定义一个运行程序，它只是输出每个可用变量的值，然后就停止。

```
{
  "info": "file_path = $file_path, file = $file, args = $args, file_name = $file_name, file_extension = $file_extension, file_base_name = $file_base_name, packages = $packages, project = $project, project_path = $project_path, project_name = $project_name, project_extension = $project_extension, project_base_name = $project_base_name, hostname = $hostname, hostname_path = $hostname_path, url = $url, port = $port, ip = $ip"
}
```

# 在 AWS Cloud9 IDE 中使用自定义环境变量
<a name="env-vars"></a>

 AWS Cloud9 集成开发环境 (IDE) 支持设置自定义环境变量。您可以通过以下方式在 AWS Cloud9 IDE 中设置自定义环境变量。
+  [设置命令级别的自定义环境变量](#env-vars-command-level) 
+  [在 \$1/.bash\$1profile 中设置自定义的用户环境变量](#env-vars-bash-profile) 
+  [设置本地自定义环境变量](#env-vars-local) 
+  [在 \$1/.bashrc 中设置自定义的用户环境变量](#env-vars-bashrc) 
+  [在 ENV List 中设置自定义环境变量](#env-vars-env-list) 

## 设置命令级别的自定义环境变量
<a name="env-vars-command-level"></a>

在 AWS Cloud9 开发环境中运行命令时，可以设置命令级自定义环境变量。要测试该行为，请使用以下代码创建一个名为 `script.sh` 的文件：

```
#!/bin/bash

echo $MY_ENV_VAR
```

如果运行以下命令，终端会显示 `Terminal session`：

```
MY_ENV_VAR='Terminal session' sh ./script.sh
```

如果您使用本主题中所述的多种方法设置自定义环境变量，当您尝试获取自定义环境变量的值时，该设置的优先级高于所有其他设置。

## 在 \$1/.bash\$1profile 中设置自定义的用户环境变量
<a name="env-vars-bash-profile"></a>

您可以在环境中的 `~/.bash_profile` 文件中设置自定义的用户环境变量。要测试该行为，请在环境中将以下代码添加到 `~/.bash_profile` 文件中：

```
export MY_ENV_VAR='.bash_profile file'
```

如果之后从命令行运行 `sh ./script.sh`，则终端会显示 `.bash_profile file`。（前提是您已按上文所述创建了 `script.sh` 文件。）

## 设置本地自定义环境变量
<a name="env-vars-local"></a>

您可以在终端会话中运行 **`export`** 命令，设置本地自定义环境变量。要测试该行为，请在终端会话中运行以下命令：

```
export MY_ENV_VAR='Command line export'
```

如果之后从命令行运行 `sh ./script.sh`，则终端会显示 `Command line export`。（前提是您已按上文所述创建了 `script.sh` 文件。）

如果您使用 **`export`** 命令以及在 `~/.bash_profile` 文件中设置了相同的自定义环境变量，则当您尝试获取自定义环境变量的值时，**`export`** 命令设置的优先级更高。

## 在 \$1/.bashrc 中设置自定义的用户环境变量
<a name="env-vars-bashrc"></a>

您可以在环境中的 `~/.bashrc` 文件中设置自定义的用户环境变量。要测试该行为，请在环境中将以下代码添加到 `~/.bashrc` 文件中：

```
export MY_ENV_VAR='.bashrc file'
```

如果之后从命令行运行 `sh ./script.sh`，则终端会显示 `.bashrc file`。（前提是您已按上文所述创建了 `script.sh` 文件。）

如果您使用 **`export`** 命令以及在 `~/.bashrc` 文件中设置了相同的自定义环境变量，则当您尝试获取自定义环境变量的值时，**`export`** 命令设置的优先级更高。

## 在 ENV List 中设置自定义环境变量
<a name="env-vars-env-list"></a>

您可以在 **Run（运行）** 选项卡上的 **ENV** 列表中设置自定义环境变量。

要测试该行为，请执行以下操作：

1. 在菜单栏上依次选择 **Run（运行）**> **Run Configurations（运行配置）**> **New Run Configuration（新建运行配置）**。

1. 在 **[New] - Idle（[新建] - 空闲）**选项卡上，选择 **Runner: Auto（运行程序：自动）**，然后选择 **Shell script（Shell 脚本）**。

1. 选择 **ENV**，然后键入 `MY_ENV_VAR` 作为 **Name（名称）**，键入 `ENV list` 作为 **Value（值）**。

1. 在 **Command（命令）**中，键入 `./script.sh`。

1. 选择 **Run（运行）**按钮，运行程序选项卡会显示 `ENV list`。（前提是您已按上文所述创建了 `script.sh` 文件。）

如果您在 `~/.bash_profile` 文件中、使用 **`export`** 命令以及在 `~/.bashrc` 文件和 **ENV** 列表中都设置了相同的自定义环境变量，则当您尝试获取自定义环境变量的值时，`~/.bash_profile` 文件设置的优先级最高，然后依次是 **`export`** 命令设置、`~/.bashrc` 文件设置和 **ENV** 列表设置。

**注意**  
**ENV** 列表是使用独立于 Shell 脚本的代码获取和设置自定义环境变量的唯一方法。

# 在 AWS Cloud9 IDE 中使用项目设置
<a name="settings-project"></a>

 仅适用于当前 AWS Cloud9 开发环境的@@ *项目设置*包括以下几种设置：
+ 代码编辑器设置，例如，是否使用软制表符以及新文件行结尾
+ 要忽略的文件类型
+ 要显示或隐藏的提示和警告类型
+ 编程语言（例如 JavaScript、PHP、Python 和 Go）的代码和格式设置
+ 在运行和生成代码时使用的配置类型

虽然项目设置仅适用于单个环境，但您可以将某个环境的项目设置应用于其他环境。
+  [查看或更改项目设置](#settings-project-view) 
+  [将一个环境的当前项目设置应用于另一个环境](#settings-project-apply) 
+  [自定义您的项目设置](settings-project-change.md) 

## 查看或更改项目设置
<a name="settings-project-view"></a>

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

1. 要查看当前环境的项目设置，请在 **Preferences（首选项）**选项卡上的侧面导航窗格中选择 **Project Settings（项目设置）**。

1. 要更改环境的当前项目设置，请在 **Project Settings**（项目设置）窗格中更改所需的设置。

有关如何更改项目设置的更多信息，请参阅[自定义您的项目设置](settings-project-change.md)。

## 将一个环境的当前项目设置应用于另一个环境
<a name="settings-project-apply"></a>

1. 在源环境和目标环境中，在 AWS Cloud9 IDE 的菜单栏上 **AWS Cloud9，选择 “打开您的项目设置”**。

1. 在源环境中，复制显示的 **project.settings** 选项卡的内容。

1. 在目标环境中，使用从源环境复制的内容覆盖 **project.settings** 选项卡的内容。

1. 在目标环境中，保存 **project.settings** 选项卡。

# 自定义您的项目设置
<a name="settings-project-change"></a>

以下几节介绍了可以在 **Preferences (首选项)** 选项卡的 **Project Settings (项目设置)** 窗格中更改的项目设置类型。
+  [EC2 实例](#settings-project-change-ec2-instance) 
+  [代码编辑器（Ace）](#settings-project-change-code-editor-ace) 
+  [在文件中查找](#settings-project-change-find-in-files) 
+  [提示和警告](#settings-project-change-hints-and-warnings) 
+  [JavaScript 支持](#settings-project-change-javascript-support) 
+  [构建](#settings-project-change-build) 
+  [运行和调试](#settings-project-change-run-and-debug) 
+  [运行配置](#settings-project-change-run-configurations) 
+  [代码格式设置程序](#settings-project-change-code-formatters) 
+  [TypeScript 支持](#settings-project-change-typescript-support) 
+  [PHP 支持](#settings-project-change-php-support) 
+  [Python 支持](#settings-project-change-python-support) 
+  [Go 支持](#settings-project-change-go-support) 

## EC2 实例
<a name="settings-project-change-ec2-instance"></a>

** **Stop my environment (停止我的环境)** **  
在关闭连接到该环境的 IDE 的所有 Web 浏览器实例后，选择何时自动停止环境的 Amazon EC2 实例（如果使用）。您可以选择从一周到 30 分钟的时间段范围。您也可以选择在退出 AWS Cloud9 IDE 后从不自动停止 Amazon EC2 实例。  
如果您希望在完成 IDE 后的 30 分钟内停止实例，则可以[使用控制台界面手动将其停止](stopping-instance-manually.md)。

## 代码编辑器（Ace）
<a name="settings-project-change-code-editor-ace"></a>

** **Soft Tabs**（软制表符） **  
如果选定，每次按 `Tab` 时，将插入指定数量的空格而不是制表符。

** **Autodetect tab size on load**（加载时自动检测制表符大小） **  
如果选中，则 AWS Cloud9 尝试猜测选项卡的大小。

** **New file line endings**（新文件行结尾） **  
用于新文件的行结尾类型。  
有效选项包含以下内容：  
+  **Windows (CRLF)** 在行结尾包含回车符和换行符。
+  **Unix (LF)** 在行结尾仅包含换行符。

** **On save, strip whitespace**（保存时删除空格） **  
如果选中，则每次保存文件时都会 AWS Cloud9 尝试从文件中删除它认为不必要的空格和制表符。

## 在文件中查找
<a name="settings-project-change-find-in-files"></a>

** **Ignore these Files (忽略这些文件)** **  
在文件中查找 AWS Cloud9 忽略的文件类型时。

** **Maximum number of files to search (in 1000) (要搜索的最大文件数 (以 1000 为单位))** **  
在文件中查找时，在当前范围内 AWS Cloud9 找到的最大文件数，以 1,000 的倍数表示。

## 提示和警告
<a name="settings-project-change-hints-and-warnings"></a>

** **警告级别** **  
要启用的最低消息级别。  
有效值包括：  
+  **Info (信息)** 启用信息性、警告和错误消息。
+  **Warning (警告)** 仅启用警告和错误消息。
+  **Error (错误)** 仅启用错误消息。

** **Mark Missing Optional Semicolons (标记缺少的可选分号)** **  
如果启用，则每次文件注意到可以在代码中使用但未使用的分号时，都会在文件中进行 AWS Cloud9 标记。

** **Mark Undeclared Variables (标记未声明的变量)** **  
如果启用，则每次在文件中注意到代码中存在未声明的变量时都会对其进行 AWS Cloud9 标记。

** **Mark Unused Function Arguments (标记未使用的函数参数)** **  
如果启用，则每次在文件中注意到函数中有未使用的参数时都会对其进行 AWS Cloud9 标记。

** **Ignore Messages Matching Regex (忽略消息匹配正则表达式)** **  
AWS Cloud9 不会显示任何与指定正则表达式匹配的消息。有关更多信息，请参阅 Mozilla Developer Network 上的 *JavaScript 正则表达式*主题中的[编写正则表达式模式](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Writing_a_regular_expression_pattern)。

## JavaScript 支持
<a name="settings-project-change-javascript-support"></a>

** **使用 .eslintrc 自定义 JavaScript 警告** **  
如果启用，则 AWS Cloud9 使用`.eslintrc`文件来确定要启用或禁用哪些JavaScript警告。有关更多信息，请参阅 ESLint 网站上的[配置文件格式](http://eslint.org/docs/user-guide/configuring#configuration-file-formats)。

** **JavaScript 库代码完成** **  
 AWS Cloud9 用于尝试建议或自动完成代码的JavaScript库。

** **Format Code on Save (保存时设置代码格式)** **  
如果启用，则每次保存JavaScript文件时都会 AWS Cloud9 尝试格式化该文件中的代码。

** **将内置 JSBeautify 作为代码格式设置程序** **  
如果启用，则 AWS Cloud9 使用其内部实现JSBeautify来尝试提高文件中代码的可读性。

** **Custom code formatter**（自定义代码格式设置程序） **  
格式化JavaScript文件中的代码时尝试运行的命令。 AWS Cloud9 

## 构建
<a name="settings-project-change-build"></a>

** **Builder path in environment**（环境中的生成器路径） **  
任何自定义生成配置的路径。

## 运行和调试
<a name="settings-project-change-run-and-debug"></a>

** **Runner path in environment**（环境中的运行程序路径） **  
任何自定义运行配置的路径。

** **Preview URL (预览 URL)** **  
用于预览环境的应用程序的 URL。

## 运行配置
<a name="settings-project-change-run-configurations"></a>

该环境的自定义运行配置。

** **Remove selected configs**（删除选定的配置） **  
删除选定的运行配置。

** **Add new config**（添加新配置） **  
创建新的运行配置。

** **Set as default**（设置为原定设置） **  
将选定的运行配置设置为默认运行配置。

## 代码格式设置程序
<a name="settings-project-change-code-formatters"></a>

** **JSBeautify 设置** **  
用于提高文件中的代码可读性的设置。    
** **Format Code on Save (保存时设置代码格式)** **  
如果启用，则每次保存代码文件时都会 AWS Cloud9 尝试应用JSBeautify设置。  
** **将 JSBeautify 用于 JavaScript** **  
如果启用，则每次保存JavaScript文件时都会 AWS Cloud9 尝试应用JSBeautify设置。  
** **Preserve empty lines**（保留空行） **  
如果启用，则 AWS Cloud9 不会删除代码文件中的空行。  
** **Keep array indentation**（保留数组缩进） **  
如果启用，则在代码文件中 AWS Cloud9 保留数组中元素声明的缩进。  
** **JSLint 严格的空格** **  
如果启用，则 AWS Cloud9 尝试在代码文件中应用 JSLint 空格规则。有关更多信息，请参阅 “[JSLint 帮助](http://jslint.com/help.html)” 中的 “空格”。  
** **Braces (大括号)** **  
指定代码中的大括号的对齐方式。  
有效值包括：  
+  **Braces with control statement (将大括号与控制语句对齐)** - 根据需要，移动开头和结尾大括号以与相关的控制语句对齐。

  例如，此代码的格式如下：

  ```
  for (var i = 0; i < 10; i++) { if (i == 5) { console.log("Halfway done.") }}
  ```

  在保存文件时变为以下代码：

  ```
  for (var i = 0; i < 10; i++) {
     if (i == 5) {
        console.log("Halfway done.")
     }
  }
  ```
+  **Braces on own line (大括号单独成行)** - 根据需要，将每个大括号单独成行。

  例如，此代码的格式如下：

  ```
  for (var i = 0; i < 10; i++) { if (i == 5) { console.log("Halfway done.") }}
  ```

  在保存文件时变为以下代码：

  ```
  for (var i = 0; i < 10; i++) {if (i == 5)
    {
       console.log("Halfway done.")
    }
    }
  ```
+  **End braces on own line (结尾大括号单独成行)** - 根据需要，将每个结尾大括号单独成行。

  例如，此代码的格式如下：

  ```
  for (var i = 0; i < 10; i++) {
    if (i == 5) { console.log("Halfway done.") }
  }
  ```

  在保存文件时变为以下代码：

  ```
  for (var i = 0; i < 10; i++) {
     if (i == 5) {
        console.log("Halfway done.")
     }
  }
  ```  
** **Preserve inline blocks**（保留内联块） **  
如果启用，则 AWS Cloud9 不会尝试将行内块的开头和结尾大括号移动到分隔行，前提是这些大括号位于同一行。  
** **Space before conditionals**（在条件前面添加空格） **  
如果启用，则根据需要在每个条件声明前 AWS Cloud9 添加一个空格。  
** **Unescape strings**（取消转义字符串） **  
如果启用，则 AWS Cloud9 将转义字符串转换为未转义的等效字符串。例如，将 `\n` 转换为换行符，并将 `\r` 转换为回车符。  
** **Indent inner HTML**（缩进内部 HTML） **  
如果启用，则在 HTML 代码中 AWS Cloud9 缩进`<head>`和`<body>`分段。

## TypeScript 支持
<a name="settings-project-change-typescript-support"></a>

** **Format Code on Save (保存时设置代码格式)** **  
如果启用，则每次保存TypeScript文件时都会 AWS Cloud9 尝试格式化TypeScript代码。

** **Custom code formatter**（自定义代码格式设置程序） **  
TypeScript 代码的任何自定义代码格式配置的路径。

## PHP 支持
<a name="settings-project-change-php-support"></a>

** **启用 PHP 代码完成** **  
如果启用，则 AWS Cloud9 尝试完成PHP代码。

** **PHP 完成包含路径** **  
 AWS Cloud9 用于尝试帮助完成PHP代码的位置。例如，如果您具有希望 AWS Cloud9 在完成代码时使用的自定义 PHP 文件，并且这些文件位于 `~/environment` 目录中的某个位置，请将 `~/environment` 添加到该路径中。

** **Format Code on Save (保存时设置代码格式)** **  
如果启用，则每次保存PHP文件时都会 AWS Cloud9 尝试格式化PHP代码。

** **Custom code formatter**（自定义代码格式设置程序） **  
PHP 代码的任何自定义代码格式配置的路径。

## Python 支持
<a name="settings-project-change-python-support"></a>

** **启用 Python 代码完成** **  
如果启用，则 AWS Cloud9 尝试完成Python代码。要设置用于完成Python代码的路径 AWS Cloud9 ，请使用 **PYTHON** PATH 设置。

** **Python 版本** **  
指定要使用的 Python 版本。

** **Pylint 命令行选项** **  
用于 AWS Cloud9 与Python代码Pylint配合使用的选项。有关更多信息，请参阅 Pylint 网站上的 [Pylint 用户手册](https://pylint.readthedocs.io/en/latest/)。

** **PYTHONPATH** **  
要使用的Python库和包 AWS Cloud9 的路径。例如，如果在 `~/environment` 目录中具有自定义 Python 库和程序包，请将 `~/environment` 添加到该路径中。

** **Format Code on Save (保存时设置代码格式)** **  
如果启用，则每次保存Python文件时都会 AWS Cloud9 尝试格式化Python代码。

** **Custom code formatter**（自定义代码格式设置程序） **  
Python 代码的任何自定义代码格式配置的路径。

## Go 支持
<a name="settings-project-change-go-support"></a>

** **启用 Go 代码完成** **  
如果启用，则 AWS Cloud9 尝试完成Go代码。

** **Format Code on Save (保存时设置代码格式)** **  
如果启用，则每次保存Go文件时都会 AWS Cloud9 尝试格式化Go代码。

** **Custom code formatter**（自定义代码格式设置程序） **  
Go 代码的任何自定义代码格式配置的路径。

# 手动停止环境的 EC2 实例
<a name="stopping-instance-manually"></a>

[EC2 实例](settings-project-change.md#settings-project-change-ec2-instance)设置允许您在关闭所有连接到 IDE 的 Web 浏览器实例后 30 分钟内自动停止环境的 Amazon EC2 实例。

您也可以使用控制台立即手动停止实例。

要手动停止环境的 EC2 实例，请选择以下步骤：

1. 关闭所有连接到 IDE 的 Web 浏览器实例后，在 AWS Cloud9 控制台中选择**您的环境**。

1. 选择窗格右上角显示所使用环境详细信息的按钮，然后选择 **View details（查看详细信息）**。

1. 在 **Environment details（环境详细信息）**中，在 **EC2 Instance（EC2 实例）**下，选择 **Go To Instance（转到实例）**。

1. 在 Amazon EC2 控制台中，在 **Instance state**（实例状态）下，选中该复选框以选择环境的实例。**Instance state**（实例状态）可能表明该实例仍在运行。

1. 依次选择 **Instance state（实例状态）**、**Stop instance（停止实例）**。

1. 当系统提示您确认时，选择 **Stop**。停止实例可能需要几分钟时间。

# 在 AWS Cloud9 IDE 中使用用户设置
<a name="settings-user"></a>

*用户设置*是应用于与您的 AWS Identity and Access Management （IAM 用户）关联的每个 AWS Cloud9 开发环境的设置。它们包括以下设置：
+ 一般用户界面设置，例如启用动画和标记已更改的标签页
+ 文件系统导航设置
+ 文件查找和搜索设置
+ 终端会话和输出的颜色方案
+ 其他代码编辑器设置，如字体大小、代码折叠、整行选择、滚动动画和字体大小

当您更改用户设置时， AWS Cloud9 会将这些更改推送到云端，并将其与您的 IAM 用户关联。 AWS Cloud9 还会持续扫描云端，查找与您的 IAM 用户关联的用户设置的更改，并将这些设置应用于您当前的环境。无论你在什么 AWS Cloud9 环境中工作，你都可以用它来体验同样的外观和感觉。

**注意**  
要存储和检索 IDE 设置，请 AWS Cloud9 使用内部 APIs`GetUserSettings`和`UpdateUserSettings`。

您可以与其他用户共享您的用户设置，如下所示：
+  [查看或更改用户设置](#settings-user-view) 
+  [与其他用户共享您的用户设置](#settings-user-share) 
+  [自定义用户设置](settings-user-change.md) 

## 查看或更改用户设置
<a name="settings-user-view"></a>

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

1. 要查看每个环境的用户设置，请在 **Preferences (首选项)** 选项卡的侧导航窗格中选择 **User Settings (用户设置)**。

1. 在 **User Settings (用户设置)** 窗格中，更改每个环境中的用户设置。

1. 要对您的其他环境应用更改，只需打开相应的环境。如果该环境已经打开，则刷新该环境的 Web 浏览器选项卡。

有关如何更改用户设置的更多信息，请参阅[自定义您的用户设置](settings-user-change.md)。

## 与其他用户共享您的用户设置
<a name="settings-user-share"></a>

1. 在源环境和目标环境中，在 AWS Cloud9 IDE 的菜单栏上 **AWS Cloud9，选择 “打开您的用户设置”**。

1. 在源环境中，复制显示的 **user.settings** 选项卡的内容。

1. 在目标环境中，使用从源环境复制的内容覆盖 **user.settings** 选项卡的内容。

1. 在目标环境中，保存 **user.settings** 选项卡。

# 自定义用户设置。
<a name="settings-user-change"></a>

以下各节说明了在 **Preferences**（首选项）选项卡的 **User Settings**（用户设置）窗格中，您可以更改的用户设置类型：
+  [一般性问题](#settings-user-change-general) 
+  [用户界面](#settings-user-change-user-interface) 
+  [协作](#settings-user-change-collaboration) 
+  [Tree 和 Go 面板](#settings-user-change-tree-and-navigate) 
+  [在文件中查找](#settings-user-change-find-in-files) 
+  [元数据](#settings-user-change-meta-data) 
+  [观察程序](#settings-user-change-watchers) 
+  [终端](#settings-user-change-terminal) 
+  [输出](#settings-user-change-output) 
+  [代码编辑器（Ace）](#settings-user-change-code-editor-ace) 
+  [输入](#settings-user-change-input) 
+  [提示和警告](#settings-user-change-hints-and-warnings) 
+  [运行和调试](#settings-user-change-run-and-debug) 
+  [预览](#settings-user-change-preview) 
+  [构建](#settings-user-change-build) 

## General
<a name="settings-user-change-general"></a>

** **Reset to Factory Settings (重置为出厂设置)** **  
如果选择 “**重置为默认值**” 按钮，则会 AWS Cloud9 将所有用户设置重置为 AWS Cloud9 默认用户设置。如要确认，请选择 **Reset settings (重置设置)**。  
您不能撤消此操作。

** **Warn Before Exiting (退出前警告)** **  
每当您尝试关闭 IDE 时，都会 AWS Cloud9 要求您确认是否要退出。

## 用户界面
<a name="settings-user-change-user-interface"></a>

** **Enable UI Animations (启用 UI 动画)** **  
AWS Cloud9 在 IDE 中使用动画。

** **Use an Asterisk (\$1) to Mark Changed Tabs (使用星号 (\$1) 标记已更改选项卡)** **  
AWS Cloud9 为已更改但其内容尚未保存的选项卡添加星号 (**\$1**)。

** **Display Title of Active Tab as Browser Title (显示活动标签页的标题作为浏览器标题)** **  
AWS Cloud9 **将关联的 Web 浏览器选项卡的标题更改为活动选项卡的标题（例如 **Untitled1**、**hello.js**、**终端**、首选项）。**

** **Automatically Close Empty Panes (自动关闭空窗格)** **  
每当你重新加载环境时，都会 AWS Cloud9 自动关闭它认为为空的所有窗格。

** **Environment Files Icon and Selection Style (环境文件图标和选择样式)** **  
图标 AWS Cloud9 用于环境文件，文件选择行为 AWS Cloud9 使用。  
有效值包括：  
+  **默认**- AWS Cloud9 使用默认图标和默认文件选择行为。
+  **备**选- AWS Cloud9 使用备用图标和替代文件选择行为。

## 协作
<a name="settings-user-change-collaboration"></a>

** **Disable collaboration security warning (禁用协作安全警告)** **  
将 read/write 成员添加到环境时， AWS Cloud9 不会显示安全警告对话框。

** **Show Authorship Info (显示作者信息)** **  
AWS Cloud9 为其他环境成员输入的文本加下划线，并在下划线中加上相关的标注。

## Tree 和 Go 面板
<a name="settings-user-change-tree-and-navigate"></a>

** **Scope Go to Anything to Favorites (将转到任何内容的范围限定为收藏夹)** **  
**Go（转到）** 窗口中的 **Go to File（转到文件）**显示结果仅作用于 **Environment（环境）**窗口中的 **Favorites（收藏夹）**。

** **Enable Preview on Tree Selection (启用在树中选择时预览)** **  
AWS Cloud9 只需单击而不是双击即可显示所选文件。

** **Hidden File Pattern (隐藏文件模式)** **  
 AWS Cloud9 要视为隐藏的文件类型。

** **Reveal Active File in Project Tree (在项目树中显示活动文件)** **  
AWS Cloud9 在 “**环境**” 窗口中突出显示活动文件。

** **Download Files As (下载文件方式)** **  
下载文件时 AWS Cloud9 要使用的行为。  
有效值包括：  
+  **auto** — 无需修改即可 AWS Cloud9 下载文件。
+  **tar.gz**-将文件 AWS Cloud9 下载为压缩TAR文件。
+  **zip** — 将文件 AWS Cloud9 下载为.zip文件。

## 在文件中查找
<a name="settings-user-change-find-in-files"></a>

** **Search In This Path When 'Project' Is Selected (选择“项目”时在该路径中搜索)** **  
在“Find in files (在文件中查找)”栏中，当选择 **Project (项目)** 作为搜索范围时，要在其中进行搜索的路径。

** **Show Full Path in Results (在结果中显示完整路径)** **  
在 **Search Results (搜索结果)** 选项卡中显示指向每个匹配文件的完整路径。

** **Clear Results Before Each Search (每次搜索前清除结果)** **  
在开始当前搜索之前，清除 **Search Results (搜索结果)** 选项卡中的之前所有搜索结果。

** **Scroll Down as Search Results Come In (显示搜索结果时向下滚动)** **  
随着多条搜索结果得到确定，**Search Results (搜索结果)** 选项卡中的结果列表会滚动到底部。

** **Open Files when Navigating Results with (Up and Down) (导航结果时使用上下箭头打开文件)** **  
在 **Search Results (搜索结果)** 选项卡的结果列表中按上下箭头键时，会打开每个匹配的文件。

## 元数据
<a name="settings-user-change-meta-data"></a>

** **Maximum of Undo Stack Items in Meta Data (元数据中的最大撤消堆栈项目数)** **  
可撤消的操作列表中 AWS Cloud9 保留的最大项目数。

## 观察程序
<a name="settings-user-change-watchers"></a>

** **Auto-Merge Files When a Conflict Occurs (发生冲突时自动合并文件)** **  
AWS Cloud9 每当发生合并冲突时，都会尝试自动合并文件。

## Terminal
<a name="settings-user-change-terminal"></a>

** **Text Color (文本颜色)** **  
**Terminal (终端)** 选项卡中文本的颜色。

** **Background Color (背景色)** **  
**Terminal (终端)** 选项卡中的背景颜色。

** **Selection Color (选定内容颜色)** **  
**Terminal (终端)** 选项卡中选定文本的颜色。

** **Font Family (字体系列)** **  
**Terminal (终端)** 选项卡中文本的字体样式。

** **字体大小** **  
**Terminal (终端)** 选项卡中文本的大小。

** **Antialiased Fonts (抗锯齿字体)** **  
AWS Cloud9 尝试平滑终**端**选项卡中的文本显示。

** **Blinking Cursor (闪烁光标)** **  
AWS Cloud9 在 “**终端**” 选项卡中持续闪烁光标。

** **Scrollback (回滚)** **  
可以在 **Terminal (终端)** 选项卡中上下滚动的行数。

** ** AWS Cloud9 用作默认编辑器** **  
 AWS Cloud9 用作默认文本编辑器。

## Output
<a name="settings-user-change-output"></a>

** **Text Color (文本颜色)** **  
显示输出的选项卡中文本的颜色。

** **Background Color (背景色)** **  
显示输出的选项卡中文本的背景色。

** **Selection Color (选定内容颜色)** **  
显示输出的选项卡中选定文本的颜色。

** **Warn Before Closing Unnamed Configuration (关闭未命名的配置前发出警告)** **  
AWS Cloud9 在关闭任何未保存的配置选项卡之前，会提示您保存该选项卡。

** **Preserve log between runs (保留运行期间日志)** **  
AWS Cloud9 保留所有尝试运行的日志。

## 代码编辑器（Ace）
<a name="settings-user-change-code-editor-ace"></a>

** **Auto-pair Brackets, Quotes, etc. (自动配对括号、引号等)** **  
AWS Cloud9 尝试为在编辑器选项卡中键入的每个相关起始字符（例如方括号、引号和大括号）添加匹配的结束字符。

** **Wrap Selection with Brackets, Quote, etc. (将选定内容放在括号、引号等内)** **  
AWS Cloud9 在选择文本并键入相关的起始字符（例如方括号、引号和大括号）后，尝试在编辑器选项卡的文本末尾插入匹配的结束字符。

** **Code Folding (代码折叠)** **  
AWS Cloud9 尝试根据相关的代码语法规则在编辑器选项卡中显示、展开、隐藏或折叠代码段。

** **Fade Fold Widgets (淡入折叠小部件)** **  
AWS Cloud9 每当您在编辑器选项卡中将鼠标悬停在这些控件上时，都会在边距中显示代码折叠控件。

** **复制空白所选内容** **  
AWS Cloud9 允许您复制和/或剪切文本，此选项决定是否将空文本复制到剪贴板。

** **Full Line Selection (整行选择)** **  
AWS Cloud9 选择在编辑器选项卡中单击三次的整行。

** **Highlight Active Line (突出显示活动行)** **  
AWS Cloud9 在编辑器选项卡中突出显示整个活动行。

** **Highlight Gutter Line (突出显示行的间隔)** **  
AWS Cloud9 在编辑器选项卡中突出显示当前行旁边的间距中的位置。

** **Show Invisible Characters (显示不可见字符)** **  
AWS Cloud9 在编辑器选项卡中显示它认为不可见的字符，例如回车符和换行符、空格和制表符。

** **Show Gutter (显示间隔)** **  
AWS Cloud9 显示排水沟。

** **Show Line Numbers (显示行号)** **  
在间隔中显示行号的行为。  
有效值包括：  
+  **Normal（正常）** – 显示行号。
+  **Relative（相对）** – 显示相对于活动行的行号。
+  **None（无）** – 隐藏行号。

** **Show Indent Guides (显示缩进对齐线)** **  
AWS Cloud9 显示指南，以便更轻松地在编辑器选项卡中可视化缩进文本。

** **Highlight Selected Word (突出显示选定单词)** **  
AWS Cloud9 选择在编辑器选项卡中双击的整个单词。

** **Scroll Past the End of the Document (滚动到文档末尾以后)** **  
允许用户在编辑器选项卡中滚动到当前文件末尾以后的行为。  
有效值包括：  
+  **Off（关闭）** – 不允许滚动到当前文件末尾以后。
+  **Half Editor Height（编辑器半高）** – 允许最多将当前文件末尾滚动到编辑器屏幕高度的一半。
+  **Full Editor Height（编辑器全高）** – 允许最多将当前文件末尾滚动到编辑器屏幕的整个高度。

** **Animate Scrolling (动画方式滚动)** **  
AWS Cloud9 在编辑器选项卡中滚动操作期间应用动画行为。

** **Font Family (字体系列)** **  
在编辑器选项卡中使用的字体样式。

** **字体大小** **  
在编辑器选项卡中使用的字体大小。

** **Antialiased Fonts (抗锯齿字体)** **  
AWS Cloud9 尝试平滑编辑器选项卡中文本的显示。

** **Show Print Margin (显示打印边距)** **  
在编辑器选项卡中指定字符位置后显示一条垂直线。

** **Mouse Scroll Speed (鼠标滚动速度)** **  
鼠标在编辑器选项卡中的相对滚动速度。值越大，滚动得越快。

** **Cursor Style (光标样式)** **  
指针在编辑器选项卡中的样式和行为。  
有效值包括：  
+  **Ace**（粗）– 将指针显示为相对于 **Slim**（细）更宽的垂直条。
+  **Slim**（细）– 将指针显示为相对较细的垂直条。
+  **Smooth**（平滑）– 将指针显示为相对于 **Slim**（细）更宽的垂直条，且与 **Slim**（细）相比闪烁得更加连续。
+  **Smooth and Slim**（平滑且细）– 将指针显示为相对较细的垂直条，且与 **Slim**（细）相比闪烁得更加连续。
+  **Wide**（宽）– 将指针显示为相对较宽的垂直条。

 **Merge Undo Deltas (合并撤消增量)** 
+  **Always（始终）** – 允许恢复合并冲突。
+  **Never（从不）** – 从不允许恢复合并冲突。
+  **Timed**（定时）– 允许在特定的时间段后恢复合并冲突。

** **Enable Wrapping For New Documents (为新文档启用换行)** **  
AWS Cloud9 将代码封装到新文件中。

## Input
<a name="settings-user-change-input"></a>

** **Complete As You Type (键入时完成)** **  
AWS Cloud9 尝试在您键入时显示可能的文本完成情况。

** **Complete On Enter (按 Enter 后完成)** **  
AWS Cloud9 按下 Ent **er** 键后尝试显示可能完成的文本。

** **Highlight Variable Under Cursor (突出显示光标下的变量)** **  
AWS Cloud9 突出显示代码中对选定变量的所有引用。

** **Use Cmd-Click for Jump to Definition (按 Cmd 键时单击以跳转到定义)** **  
AWS Cloud9 对于按住 Mac 版 C **omm** and 或 **Ctrl**（适用于 Windows）时所选代码的任意原始定义。

## 提示和警告
<a name="settings-user-change-hints-and-warnings"></a>

** **Enable Hints and Warnings (启用提示和警告)** **  
AWS Cloud9 显示适用的提示和警告消息。

** **点击后显示可用的快速修复** **  
AWS Cloud9 当你点击代码中的关键字时，会显示一个包含重构建议的工具提示。

** **Ignore Messages Matching Regex (忽略消息匹配正则表达式)** **  
AWS Cloud9 不显示任何与指定正则表达式匹配的消息。有关更多信息，请参阅 Mozilla Developer Network 上的 *JavaScript 正则表达式*主题中的[编写正则表达式模式](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Writing_a_regular_expression_pattern)。

## 运行和调试
<a name="settings-user-change-run-and-debug"></a>

** **Save All Unsaved Tabs Before Running (运行之前保存所有未保存选项卡)** **  
在运行关联代码之前， AWS Cloud9 会尝试使用打开的选项卡保存所有未保存的文件。

## 预览
<a name="settings-user-change-preview"></a>

** **Preview Running Apps (预览运行应用程序)** **  
AWS Cloud9 每当选择 “预览” 按钮时，都会尝试在活动选项卡中显示代码输出的**预览**。

** **Default Previewer (默认预览格式)** **  
该格式 AWS Cloud9 用于预览代码输出。  
有效值包括：  
+  **Raw（原始）** – 尝试使用纯文本格式显示代码输出。
+  **Browser**（浏览器）– 尝试使用 Web 浏览器的首选格式显示代码输出。

** **When Saving Reload Previewer (保存时重新加载预览器)** **  
该行为 AWS Cloud9 用于在保存代码文件时预览代码输出。  
有效值包括：  
+  **Only on Ctrl-Enter（仅在按下 Ctrl-Enter 时）** – 只要为当前代码选项卡按下 **Ctrl\$1Enter**，即尝试预览代码输出。
+  **Always（始终）** – 尝试在保存代码文件时预览代码输出。

## 构建
<a name="settings-user-change-build"></a>

** **Automatically Build Supported Files (自动生成支持的文件)** **  
AWS Cloud9 如果已启动生成操作并且代码采用支持的格式，则尝试自动生成当前代码。

# 在 AWS Cloud9 IDE 中使用 AWS 项目和用户设置
<a name="settings-aws"></a>

AWS 服务 位于 “**首选项**” 选项卡的 “**AWS 设置**” 面板中的设置包括以下设置：
+ 哪个 AWS 区域 用于 “**AWS 资源**” 窗口
+ 是否使用 AWS 托管临时证书
+ 是以纯文本模式还是以可视模式显示 AWS Serverless Application Model (AWS SAM) 模板编辑器

要查看或更改这些设置，请在环境的 IDE 菜单栏中选择 **AWS Cloud9, Preferences（Amazon Cloud9，首选项）**。

在以下列表中，项目级设置仅适用于当前的 AWS Cloud9 开发环境。相比之下，用户级别设置适用于与 IAM 用户关联的每个环境。有关更多信息，请参阅[将一个环境的当前项目设置应用于另一个环境](settings-project.md#settings-project-apply)以及[与其他用户共享您的用户设置](settings-user.md#settings-user-share)。
+  [项目级别设置](#settings-aws-project) 
+  [用户级别设置](#settings-aws-user) 

## 项目级别设置
<a name="settings-aws-project"></a>

** **AWS 区域** **  
哪个 AWS 区域 用于 “**AWS 资源**” 窗口的 **Lambda** 部分。

** **AWS 托管的临时证书** **  
如果启用，则当您 AWS 服务 从环境中的、或 AWS SDK 代码中调用时 AWS CLI AWS CloudShell，将使用 AWS 托管临时证书。有关更多信息，请参阅 [AWS 托管式临时凭证](security-iam.md#auth-and-access-control-temporary-managed-credentials)。

## 用户级别设置
<a name="settings-aws-user"></a>

** **使用 AWS SAM 可视化编辑器** **  
如果启用，则当您使用**AWS 资源**窗口的 **Lambda** 部分时， AWS Serverless Application Model (AWS SAM) 模板编辑器将以可视模式显示。如果关闭，则以文本模式显示编辑器。

# 在 IDE 中使用按键绑定 AWS Cloud9
<a name="settings-keybindings"></a>

*键绑定* 定义您的快捷键组合。键绑定适用于与您的 IAM 用户关联的每个 AWS Cloud9 开发环境。当您更改按键绑定时， AWS Cloud9 将这些更改推送到云端，然后将其与您的 IAM 用户关联。 AWS Cloud9 还会持续扫描云端，查找与您的 IAM 用户关联的按键绑定更改，并将这些更改应用于您当前的环境。

您可以与其他用户共享您的键绑定。
+  [查看或更改您的键绑定](#settings-keybindings-view) 
+  [与其他用户共享您的键绑定](#settings-keybindings-share) 
+  [更改您的键盘模式](#settings-keybindings-mode) 
+  [更改您的操作系统键绑定](#settings-keybindings-os) 
+  [更改特定的键绑定](#settings-keybindings-change) 
+  [删除您的所有自定义键绑定](#settings-keybindings-reset) 

## 查看或更改键绑定
<a name="settings-keybindings-view"></a>

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

1. 要查看每个环境中的键绑定，请在 **Preferences（首选项）**选项卡的侧面导航窗格中选择 **Keybindings（键绑定）**。

1. 要更改每个环境中的键绑定，请在 **Keybindings**（键绑定）窗格中更改所需的设置。

1. 要将更改应用于环境，请直接打开该环境。如果该环境已经打开，则刷新该环境的 Web 浏览器选项卡。

有关更多信息，请参阅下列内容：
+  [MacOS 默认键绑定参考](keybindings-default-apple-osx.md) 
+  [MacOS Vim 键绑定参考](keybindings-vim-apple-osx.md) 
+  [MacOS Emacs 键绑定参考](keybindings-emacs-apple-osx.md) 
+  [MacOS Sublime 键绑定参考](keybindings-sublime-apple-osx.md) 
+  [Windows/Linux 默认键绑定参考](keybindings-default-windows-linux.md) 
+  [Windows/Linux Vim 键绑定参考](keybindings-vim-windows-linux.md) 
+  [Windows/Linux Emacs 键绑定参考](keybindings-emacs-windows-linux.md) 
+  [Windows / Linux Sublime 键绑定参考](keybindings-sublime-windows-linux.md) 

## 与其他用户共享您的键绑定
<a name="settings-keybindings-share"></a>

1. 在源环境和目标环境中，在 AWS Cloud9 IDE 的菜单栏上选择 “**AWS Cloud9打开您的键盘映射**”。

1. 在源环境中，复制所显示的 **keybindings.settings** 选项卡的内容。

1. 在目标环境中，使用从源环境复制的内容覆盖 **keybindings.settings** 选项卡内容。

1. 在目标环境中，保存 **keybindings.settings** 选项卡。

## 更改您的键盘模式
<a name="settings-keybindings-mode"></a>

您可以更改 AWS Cloud9 IDE 在与您的 IAM 用户关联的每个环境中与编辑器中的文本进行交互时使用的键盘模式。

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

1. 在 **Preferences (首选项)** 选项卡上，在侧面导航窗格中选择 **Keybindings (键绑定)**。

1. 对于 **Keyboard Mode (键盘模式)**，请选择以下键盘模式之一：
   +  选择 **Default (默认)** 以使用一组默认键绑定。
   +  选择 **Vim** 以使用 Vim 模式。有关更多信息，请参阅 [Vim 帮助文件](https://vimhelp.appspot.com/)网站。
   +  选择 **Emacs** 以使用 Emacs 模式。有关更多信息，请参阅 GNU 操作系统网站上的 [Emacs 编辑器](https://www.gnu.org/software/emacs/manual/html_node/emacs/index.html)。
   +  选择 **Sublime** 以使用 Sublime 模式。有关更多信息，请参阅 [Sublime Text 文档](https://www.sublimetext.com/docs/3/)网站。

## 更改您的操作系统键绑定
<a name="settings-keybindings-os"></a>

您可以更改 AWS Cloud9 IDE 在与您的 IAM 用户关联的每个环境中识别的操作系统按键绑定集。

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

1. 在 **Preferences (首选项)** 选项卡上，在侧面导航窗格中选择 **Keybindings (键绑定)**。

1. 对于 **Operating System (操作系统)**，请选择以下操作系统之一：
   +  **自动**， AWS Cloud9 让 IDE 尝试检测要使用哪组操作系统按键绑定。
   +  **macOS** 让 AWS Cloud9 IDE 使用以 macOS 格式列出的按键绑定。
   +  **Windows/Linux** AWS Cloud9 让 IDE 使用 Windows 和 Linux 格式列出的按键绑定。

## 更改特定的键绑定
<a name="settings-keybindings-change"></a>

在与您的 IAM 用户关联的每个环境中，您可以更改各个键绑定。

**同时更改一个键绑定**

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

1. 在 **Preferences (首选项)** 选项卡上，在侧面导航窗格中选择 **Keybindings (键绑定)**。

1. 在键绑定列表中，在 **Keystroke **（按键）列中打开（双击）要更改的键绑定。

1. 使用键盘指定替换组合键，然后按 `Enter`。
**注意**  
要完全删除当前组合键，请按 `Backspace`（Windows 或 Linux）或 `Delete`（macOS）。

**同时更改多个键绑定**

1. 在菜单栏上，依次选择 **AWS Cloud9**、**Open Your Keymap（打开键映射）**。

1. 在 `keybindings.settings` 文件中，定义要更改的每个键绑定。以下是语法示例。

   ```
   [
     {
       "command": "addfavorite",
       "keys": {
         "win": ["Ctrl-Alt-F"],
         "mac": ["Ctrl-Option-F"]
       }
     },
     {
       "command": "copyFilePath",
       "keys": {
         "win": ["Ctrl-Shift-F"],
         "mac": ["Alt-Shift-F"]
       }
     }
   ]
   ```

   在该示例中，`addFavorite` 和 `copyFilePath` 是 **Preferences（首选项）**选项卡上 **Keybindings（键绑定）**窗格的 **Keystroke（按键）**列中的键绑定名称。对于 Windows 或 Linux 和 macOS，所需的键绑定分别为 `win` 和 `mac`。

   要应用您的更改，请保存 `keybindings.settings` 文件。在短暂延迟后，将在 **Keybindings**（键绑定）窗格中显示您的更改。

## 删除您的所有自定义键绑定
<a name="settings-keybindings-reset"></a>

在与您的 IAM 用户关联的每个环境中，您可以删除所有自定义键绑定并将所有键绑定恢复为原定设置值。

**警告**  
*不能*撤消此操作。

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

1. 在 **Preferences (首选项)** 选项卡上，在侧面导航窗格中选择 **Keybindings (键绑定)**。

1. 选择 **Reset to Defaults (重置为默认值)**。

# 在 AWS Cloud9 IDE 中处理主题
<a name="settings-theme"></a>

*主题* 定义您的整体 IDE 颜色。这适用于每个与您的 IAM 用户关联的 AWS Cloud9 开发环境。当您对模板进行更改时， AWS Cloud9 将这些更改推送到云端，然后将其与您的 IAM 用户关联。 AWS Cloud9 还会持续扫描云端，以查找与您的 IAM 用户关联的主题的更改。 AWS Cloud9 将这些更改应用于您当前的环境。
+  [查看或更改您的主题](#settings-theme-view) 
+  [您可以更改的整体主题设置](#settings-theme-change) 
+  [主题覆盖](#settings-theme-code) 

## 查看或更改您的主题
<a name="settings-theme-view"></a>

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

1. 要查看每个环境中的主题，请在 **Preferences（首选项）**选项卡上的侧面导航窗格中选择 **Themes（主题）**。

1. 要更改每个环境中的主题，请在 **Themes（主题）**窗格中更改所需的设置。要使用代码更改主题的某些部分，请选择 **your stylesheet (您的样式表)** 链接。

1. 要将更改应用于您的环境，请打开该环境。如果该环境已经打开，则刷新该环境的 Web 浏览器选项卡。

## 您可以更改的整体主题设置
<a name="settings-theme-change"></a>

您可以在 **Preferences (首选项)** 选项卡上的 **Themes (主题)** 窗格中更改以下类型的整体主题设置。

** **Flat Theme (平面主题)** **  
在 AWS Cloud9 IDE 中应用内置的平面主题。

** **Classic Theme (经典主题)** **  
在 AWS Cloud9 IDE 中应用选定的内置经典主题。

** **Syntax Theme (语法主题)** **  
将选定的主题应用于 AWS Cloud9 IDE 中的代码文件。

## 主题覆盖
<a name="settings-theme-code"></a>

**重要**  
AWS Cloud9 不再支持允许用户通过更新`styles.css`文件来覆盖 IDE 主题的功能。用户可以继续使用编辑器查看、编辑和保存 `styles.css` 文件。但是，在 AWS Cloud9 IDE 加载时，不会应用任何主题覆盖。  
如果 AWS Cloud9 检测到`styles.css`文件已被修改，IDE 中将显示以下消息：  
已停止支持主题覆盖。在加载 AWS Cloud9 IDE 时，此 styles.css 文件的内容将不再适用。  
如果您需要使用样式表来定义 IDE 的主题，请直接[联系我们](https://aws.amazon.com/contact-us/)。

# 在 AWS Cloud9 IDE 中管理初始化脚本
<a name="settings-init-script"></a>

**重要**  
AWS Cloud9 不再支持允许用户自定义初始化脚本的实验性功能。此脚本在 IDE 中自动运行。用户可以继续使用编辑器查看、编辑和保存 `init.js` 文件。但不再允许自定义初始化脚本运行，也无法修改 IDE 的行为。  
如果 AWS Cloud9 检测到`init.js`文件已被修改，IDE 中将显示以下消息：  
已停止支持初始化脚本。在加载 AWS Cloud9 IDE 时，将不再执行此 init.js 文件的内容。  
如果您需要为 IDE 运行自定义初始化脚本，请[联系我们](https://aws.amazon.com/contact-us/)。

*初始化脚本* 定义在加载所有插件后在 IDE 中运行的初始化代码。这适用于与您的 IAM 用户关联的每个 AWS Cloud9 开发环境。 AWS Cloud9 还会持续扫描初始化脚本的更改，并在发生修改时提醒用户。

## 打开初始化脚本
<a name="settings-init-script-view"></a>

要打开初始化脚本，请在菜单栏上依次选择 **AWS Cloud9**、**Open Your Init Script（打开初始化脚本）**。

**重要**  
您可以使用编辑器编辑和保存 `init.js` 文件，但不允许自定义脚本在 IDE 中运行。

# 适用于 IDE 的 macOS 默认按键绑定参考 AWS Cloud9
<a name="keybindings-default-apple-osx"></a>

此步骤说明如何选择 macOS 的 “默认按键绑定参考”。 AWS Cloud9

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

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

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

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

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

以下是 AWS Cloud9 集成开发环境 (IDE) 中 macOS 操作系统的默认键盘模式键绑定列表：
+  [一般性问题](#keybindings-default-apple-osx-general) 
+  [选项卡](#keybindings-default-apple-osx-tabs) 
+  [面板](#keybindings-default-apple-osx-panels) 
+  [代码编辑器](#keybindings-default-apple-osx-code-editor) 
+  [emmet](#keybindings-default-apple-osx-emmet) 
+  [终端](#keybindings-default-apple-osx-terminal) 
+  [运行和调试](#keybindings-default-apple-osx-run-debug) 

## General
<a name="keybindings-default-apple-osx-general"></a>


****  

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

## 选项卡
<a name="keybindings-default-apple-osx-tabs"></a>


****  

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

## 面板
<a name="keybindings-default-apple-osx-panels"></a>


****  

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

## 代码编辑器
<a name="keybindings-default-apple-osx-code-editor"></a>


****  

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

## emmet
<a name="keybindings-default-apple-osx-emmet"></a>


****  

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

## Terminal
<a name="keybindings-default-apple-osx-terminal"></a>


****  

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

## 运行和调试
<a name="keybindings-default-apple-osx-run-debug"></a>


****  

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

# 适用于 IDE 的 macOS Vim 按键绑定参考 AWS Cloud9
<a name="keybindings-vim-apple-osx"></a>

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

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

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

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

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

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

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

## General
<a name="keybindings-vim-apple-osx-general"></a>


****  

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

## 选项卡
<a name="keybindings-vim-apple-osx-tabs"></a>


****  

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

## 面板
<a name="keybindings-vim-apple-osx-panels"></a>


****  

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

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


****  

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

## emmet
<a name="keybindings-vim-apple-osx-emmet"></a>


****  

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

## Terminal
<a name="keybindings-vim-apple-osx-terminal"></a>


****  

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

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


****  

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

# 适用于 IDE 的 macs Emacs 按键绑定参考 AWS Cloud9
<a name="keybindings-emacs-apple-osx"></a>

此步骤说明如何选择 macOS Emacs 按键绑定参考。 AWS Cloud9

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

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

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

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

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

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

## General
<a name="keybindings-emacs-apple-osx-general"></a>


****  

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

## 选项卡
<a name="keybindings-emacs-apple-osx-tabs"></a>


****  

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

## 面板
<a name="keybindings-emacs-apple-osx-panels"></a>


****  

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

## 代码编辑器
<a name="keybindings-emacs-apple-osx-code-editor"></a>


****  

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

## emmet
<a name="keybindings-emacs-apple-osx-emmet"></a>


****  

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

## Terminal
<a name="keybindings-emacs-apple-osx-terminal"></a>


****  

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

## 运行和调试
<a name="keybindings-emacs-apple-osx-run-debug"></a>


****  

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

# 适用于 IDE 的 macOS Sublime Keybindings 参考 AWS Cloud9
<a name="keybindings-sublime-apple-osx"></a>

此步骤说明如何选择 macOS 的 Sublime Keybindings 参考。 AWS Cloud9

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

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

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

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

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

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

## General
<a name="keybindings-sublime-apple-osx-general"></a>


****  

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

## 选项卡
<a name="keybindings-sublime-apple-osx-tabs"></a>


****  

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

## 面板
<a name="keybindings-sublime-apple-osx-panels"></a>


****  

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

## 代码编辑器
<a name="keybindings-sublime-apple-osx-code-editor"></a>


****  

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

## emmet
<a name="keybindings-sublime-apple-osx-emmet"></a>


****  

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

## Terminal
<a name="keybindings-sublime-apple-osx-terminal"></a>


****  

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

## 运行和调试
<a name="keybindings-sublime-apple-osx-run-debug"></a>


****  

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

# Windows/Linux IDE 的默认按键绑定参考 AWS Cloud9
<a name="keybindings-default-windows-linux"></a>

此步骤说明如何选择用于 AWS Cloud9的 Windows/Linux 默认键绑定参考。

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

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

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

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

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

以下是 AWS Cloud9 集成开发环境 (IDE) 中 Windows/Linux 操作系统的默认键盘模式键绑定列表。
+  [一般性问题](#keybindings-default-windows-linux-general) 
+  [选项卡](#keybindings-default-windows-linux-tabs) 
+  [面板](#keybindings-default-windows-linux-panels) 
+  [代码编辑器](#keybindings-default-windows-linux-code-editor) 
+  [emmet](#keybindings-default-windows-linux-emmet) 
+  [终端](#keybindings-default-windows-linux-terminal) 
+  [运行和调试](#keybindings-default-windows-linux-run-debug) 

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


****  

| 说明 | 键绑定 | 命令 | 
| --- | --- | --- | 
|  添加选定内容作为监视表达式  |   `Ctrl-Shift-C`   |   `addwatchfromselection`   | 
|  删除剪贴板中的剪切选择  |   `Esc`   |   `clearcut`   | 
|  显示代码完成上下文菜单  |   `Ctrl-Space` \$1 `Alt-Space`   |   `complete`   | 
|  代码完成，然后覆盖  |   `Ctrl-Shift-Space` \$1 `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` \$1 `Ctrl-Y`   |   `redo`   | 
|  刷新预览窗格  |   `Ctrl-Enter`   |   `reloadpreview`   | 
|  开始重命名/重构选定内容  |   `Ctrl-Alt-R`   |   `renameVar`   | 
|  显示当前文档的查找和替换栏，光标位于替换为表达式上  |   `Alt-Shift-F` \$1 `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-default-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-default-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-default-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`   | 
|  将选定内容居中  |   `Ctrl-L`   |   `centerselection`   | 
|  复制一行的内容，并将复制的内容粘贴到下一行  |   `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`   | 
|  折叠所有可折叠的元素  |   `Ctrl-Command-Option-0`   |   `foldall`   | 
|  折叠所有可折叠的元素（当前选定内容范围除外）  |   `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`   | 
|  向下移一页  |   `Option-Page Down`   |   `pagedown`   | 
|  向上移一页  |   `Option-Page Up`   |   `pageup`   | 
|  删除当前行的内容  |   `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-O`   |   `splitline`   | 
|  在选定内容周围环绕块注释字符，如果已有块注释字符，则将其删除  |   `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-default-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-default-windows-linux-terminal"></a>


****  

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

## 运行和调试
<a name="keybindings-default-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`   | 

# 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` \$1 `Alt-Space`   |   `complete`   | 
|  代码完成，然后覆盖  |   `Ctrl-Shift-Space` \$1 `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` \$1 `Ctrl-Y`   |   `redo`   | 
|  刷新预览窗格  |   `Ctrl-Enter`   |   `reloadpreview`   | 
|  开始重命名/重构选定内容  |   `Ctrl-Alt-R`   |   `renameVar`   | 
|  显示当前文档的查找和替换栏，光标位于替换为表达式上  |   `Alt-Shift-F` \$1 `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`   | 

# Windows/Linux Emacs IDE 键绑定参考 AWS Cloud9
<a name="keybindings-emacs-windows-linux"></a>

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

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

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

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

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

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

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

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


****  

| 说明 | 键绑定 | 命令 | 
| --- | --- | --- | 
|  添加选定内容作为监视表达式  |   `Ctrl-Shift-C`   |   `addwatchfromselection`   | 
|  删除剪贴板中的剪切选择  |   `Esc`   |   `clearcut`   | 
|  显示代码完成上下文菜单  |   `Ctrl-Space` \$1 `Alt-Space`   |   `complete`   | 
|  代码完成，然后覆盖  |   `Ctrl-Shift-Space` \$1 `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` \$1 `Ctrl-Y`   |   `redo`   | 
|  刷新预览窗格  |   `Ctrl-Enter`   |   `reloadpreview`   | 
|  开始重命名/重构选定内容  |   `Ctrl-Alt-R`   |   `renameVar`   | 
|  显示当前文档的查找和替换栏，光标位于替换为表达式上  |   `Alt-Shift-F` \$1 `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-emacs-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-emacs-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-emacs-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-O`   |   `splitline`   | 
|  在选定内容周围环绕块注释字符，如果已有块注释字符，则将其删除  |   `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-emacs-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-emacs-windows-linux-terminal"></a>


****  

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

## 运行和调试
<a name="keybindings-emacs-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`   | 

# Windows/Linux Sublime IDE 按键绑定参考 AWS Cloud9
<a name="keybindings-sublime-windows-linux"></a>

此步骤说明如何选择用于 AWS Cloud9的 Windows/Linux Sublime 键绑定参考。

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

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

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

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

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

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

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


****  

| 说明 | 键绑定 | 命令 | 
| --- | --- | --- | 
|  添加选定内容作为监视表达式  |   `Ctrl-Shift-C`   |   `addwatchfromselection`   | 
|  删除剪贴板中的剪切选择  |   `Esc`   |   `clearcut`   | 
|  显示代码完成上下文菜单  |   `Ctrl-Space`   |   `complete`   | 
|  代码完成，然后覆盖  |   `Ctrl-Shift-Space` \$1 `Alt-Shift-Space`   |   `completeoverwrite`   | 
|  将选定内容复制到剪贴板中  |   `Ctrl-C`   |   `copy`   | 
|  将选定内容剪切到剪贴板中  |   `Ctrl-X`   |   `cut`   | 
|  删除从光标到行开头的内容  |   `Ctrl-Shift-Backspace \| Ctrl-K Ctrl-Backspace`   |   `delete_to_hard_bol`   | 
|  删除从光标到行末尾的内容  |   `Ctrl-Shift-Delete \| Ctrl-K Ctrl-K`   |   `delete_to_hard_eol`   | 
|  展开代码（如果适用）  |   `Tab`   |   `expandSnippet`   | 
|  显示当前文档的查找和替换栏  |   `Ctrl-F`   |   `find`   | 
|  突出显示选定内容的所有匹配项  |   `Alt-F3`   |   `find_all_under`   | 
|  突出显示选定内容的下一匹配项  |   `Ctrl-F3`   |   `find_under`   | 
|  突出显示光标周围区域和要突出显示的所有匹配项  |   `Ctrl-D`   |   `find_under_expand`   | 
|  突出显示光标周围区域并为要突出显示的所有匹配项添加轮廓线  |   `Ctrl-K Ctrl-D`   |   `find_under_expand_skip`   | 
|  突出显示选定内容的上一匹配项  |   `Ctrl-Shift-F3`   |   `find_under_prev`   | 
|  选择当前文档中的所有查找匹配项  |   `Ctrl-Alt-K`   |   `findAll`   | 
|  转至当前文档中下一处与您最后输入的查询匹配的内容  |   `F3`   |   `findnext`   | 
|  转至当前文档中前一处与您最后输入的查询匹配的内容  |   `Shift-F3`   |   `findprevious`   | 
|  在编辑器内活动文件中显示对插入点符号的所有已知引用  |   `Shift-F3`   |   `findReferences`   | 
|  打开 **Environment（环境）**窗口，然后使文件列表处于活动状态  |   `Shift-Esc`   |   `focusTree`   | 
|  重新格式化所选代码 JavaScript   |   `Ctrl-Alt-F`   |   `formatcode`   | 
|  显示“go to line（转到行）”框  |   `Ctrl-G`   |   `gotoline`   | 
|  如果显示查找和替换栏，则将其隐藏  |   `Esc`   |   `hidesearchreplace`   | 
|  转到光标所在位置变量或函数的定义  |   `F12`   |   `jumptodef`   | 
|  如果在 **AWS Resources（Amazon 资源）**窗口的**Lambda**的部分中选择了本地 Lambda 函数，则尝试将函数作为远程函数上传到 Lambda  |   `Ctrl-Shift-U`   |   `lambdaUploadFunction`   | 
|  转到当前单词的末尾  |   `Ctrl-Right`   |   `moveToWordEndRight`   | 
|  转到当前单词的开头  |   `Ctrl-Left`   |   `moveToWordStartLeft`   | 
|  创建新文件  |   `Alt-N`   |   `newfile`   | 
|  显示 **Preferences（首选项）**选项卡  |   `Ctrl-,`   |   `openpreferences`   | 
|  打开 **Terminal（终端）**选项卡，然后切换到文件列表中的选定文件的父文件夹  |   `Alt-L`   |   `opentermhere`   | 
|  在光标所在位置粘贴当前剪贴板中的内容  |   `Ctrl-V`   |   `paste`   | 
|  显示对修复错误的建议  |   `Ctrl-F3`   |   `quickfix`   | 
|  重做上次操作  |   `Ctrl-Shift-Z` \$1 `Ctrl-Y`   |   `redo`   | 
|  刷新预览窗格  |   `Ctrl-Enter`   |   `reloadpreview`   | 
|  开始重命名/重构选定内容  |   `Ctrl-Alt-R`   |   `renameVar`   | 
|  显示当前文档的查找和替换栏，光标位于替换为表达式上  |   `Ctrl-H`   |   `replace`   | 
|  在查找和替换栏中，使用替换为表达式替换查找表达式的所有匹配项  |   `Ctrl-Alt-Enter`   |   `replaceall`   | 
|  在查找和替换栏中，使用替换为表达式替换查找表达式的下一个匹配项  |   `Ctrl-Shift-H`   |   `replacenext`   | 
|  重新运行您的初始化脚本  |   `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`   | 
|  将从光标到单词末尾的部分包含到选定内容中  |   `Ctrl-Shift-Right`   |   `selectToWordEndRight`   | 
|  将从光标到单词开头的部分包含到选定内容中  |   `Ctrl-Shift-Left`   |   `selectToWordStartLeft`   | 
|  显示 **Process List（进程列表）**对话框  |   `Ctrl-Alt-P`   |   `showprocesslist`   | 
|  撤消上次操作  |   `Ctrl-Z`   |   `undo`   | 

## 选项卡
<a name="keybindings-sublime-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-Page Up`   |   `gototableft`   | 
|  向右移一个选项卡  |   `Ctrl-Page Down`   |   `gototabright`   | 
|  将当前选项卡下移一个窗格，如果选项卡已在最底部，则在对应位置创建一个拆分选项卡  |   `Ctrl-Meta-Down`   |   `movetabdown`   | 
|  将当前选项卡左移一个窗格，如果选项卡已在最左侧，则在对应位置创建一个拆分选项卡  |   `Ctrl-Meta-Left`   |   `movetableft`   | 
|  将当前选项卡右移一个窗格，如果选项卡已在最右侧，则在对应位置创建一个拆分选项卡  |   `Ctrl-Meta-Right`   |   `movetabright`   | 
|  将当前选项卡上移一个窗格，如果选项卡已在最顶端，则在对应位置创建一个拆分选项卡  |   `Ctrl-Meta-Up`   |   `movetabup`   | 
|  转至下一选项卡  |   `Ctrl-Tab`   |   `nexttab`   | 
|  转至前一窗格  |   `Ctrl-Shift-``   |   `previouspane`   | 
|  转至前一选项卡  |   `Ctrl-Shift-Tab`   |   `previoustab`   | 
|  返回上一选项卡  |   `Esc`   |   `refocusTab`   | 
|  再次打开上一选项卡  |   `Ctrl-Shift-T`   |   `reopenLastTab`   | 
|  在文件树中显示当前选项卡  |   `Ctrl-E`   |   `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-sublime-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-R\|Ctrl-Shift-R`   |   `outline`   | 
|  显示隐藏的 **Console（控制台）**窗口，或隐藏显示的控制台窗口  |   `Ctrl-``   |   `toggleconsole`   | 
|  显示隐藏的 **Environment（环境）**窗口，或隐藏显示的环境窗口  |   `Ctrl-K Ctrl-B`   |   `toggletree`   | 

## 代码编辑器
<a name="keybindings-sublime-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`   | 
|  将选定内容居中  |   `Ctrl-K Ctrl-C`   |   `centerselection`   | 
|  复制一行的内容，并将复制的内容粘贴到下一行  |   `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`   | 
|  折叠所有可折叠的元素（当前选定内容范围除外）  |   `Ctrl-K Ctrl-1`   |   `foldOther`   | 
|  向下移一行  |   `Down`   |   `golinedown`   | 
|  向上移一行  |   `Up`   |   `golineup`   | 
|  转至文件末尾  |   `Ctrl-End`   |   `gotoend`   | 
|  向左移一个字符  |   `Left`   |   `gotoleft`   | 
|  转至当前行末尾  |   `Alt-Right \| End`   |   `gotolineend`   | 
|  转至当前行开头  |   `Alt-Left \| Home`   |   `gotolinestart`   | 
|  转至下一错误  |   `Ctrl-F6`   |   `goToNextError`   | 
|  向下移一页  |   `Page Down`   |   `gotopagedown`   | 
|  向上移一页  |   `Page Up`   |   `gotopageup`   | 
|  转至前一错误  |   `Ctrl-Shift-F6`   |   `goToPreviousError`   | 
|  向右移一个字符  |   `Right`   |   `gotoright`   | 
|  转至文件开头  |   `Ctrl-Home`   |   `gotostart`   | 
|  向左移一个单词  |   `Ctrl-Left`   |   `gotowordleft`   | 
|  向右移一个单词  |   `Ctrl-Right`   |   `gotowordright`   | 
|  将选定内容缩进一个制表符位置  |   `Tab`   |   `indent`   | 
|  将从光标到单词开头的部分包含到选定内容中  |   `Ctrl-J`   |   `joinlines`   | 
|  转至当前范围中的匹配符号  |   `Ctrl-M`   |   `jumptomatching`   | 
|  增大字体大小  |   `Ctrl-- \| Ctrl-= \| Ctrl-+`   |   `largerfont`   | 
|  如果光标左侧是一个数字，则将其将减少 1  |   `Alt-Down`   |   `modifyNumberDown`   | 
|  如果光标左侧是一个数字，则将其将增加 1  |   `Alt-Up`   |   `modifyNumberUp`   | 
|  将选定内容向下移一行  |   `Ctrl-Shift-Down`   |   `movelinesdown`   | 
|  将选定内容向上移一行  |   `Ctrl-Shift-Up`   |   `movelinesup`   | 
|  将选定内容减少缩进一个制表符位置  |   `Shift-Tab`   |   `outdent`   | 
|  打开/关闭覆盖模式  |   `Insert`   |   `overwrite`   | 
|  删除当前行的内容  |   `Ctrl-Shift-K`   |   `removeline`   | 
|  删除从光标到当前行末尾的内容  |   `Alt-Delete`   |   `removetolineend`   | 
|  删除从当前行开头直至光标所在位置的内容  |   `Alt-Backspace`   |   `removetolinestart`   | 
|  删除光标左侧的单词  |   `Ctrl-Backspace`   |   `removewordleft`   | 
|  删除光标右侧的单词  |   `Ctrl-Delete`   |   `removewordright`   | 
|  回放以前记录的击键  |   `Ctrl-Shift-Q`   |   `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-- \| Ctrl-Shift-= \| Ctrl-Shift-+`   |   `smallerfont`   | 
|  如果已选择多行，则按排序顺序将其重新排列  |   `F9`   |   `sortlines`   | 
|  在当前行末尾添加光标  |   `Ctrl-Shift-L`   |   `splitIntoLines`   | 
|  在选定内容周围环绕块注释字符，如果已有块注释字符，则将其删除  |   `Ctrl-Shift-/`   |   `toggleBlockComment`   | 
|  在选定的每一行开头添加行注释字符，如果已有行注释字符，则将其删除  |   `Ctrl-/`   |   `togglecomment`   | 
|  折叠代码，如果已折叠，则取消折叠  |   `Ctrl-Shift-[`   |   `toggleFoldWidget`   | 
|  折叠父代码，如果已折叠，则取消折叠  |   `Alt-F2`   |   `toggleParentFoldWidget`   | 
|  开始击键记录，如果已在记录，则停止  |   `Ctrl-Q`   |   `togglerecording`   | 
|  设置单词换行，如果已设置，则停止单词换行  |   `Ctrl-Q`   |   `toggleWordWrap`   | 
|  将选定内容更改为全部小写  |   `Ctrl-K Ctrl-L`   |   `tolowercase`   | 
|  将选定内容更改为全部大写  |   `Ctrl-K Ctrl-U`   |   `touppercase`   | 
|  转置选定内容  |   `Alt-X`   |   `transposeletters`   | 
|  展开选定代码  |   `Ctrl-Shift-]`   |   `unfold`   | 
|  展开整个文件的代码折叠  |   `Ctrl-K Ctrl-0 \| Ctrl-K Ctrl-J`   |   `unfoldall`   | 

## emmet
<a name="keybindings-sublime-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-sublime-windows-linux-terminal"></a>


****  

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

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


****  

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

# AWS Cloud9 IDE 的命令参考
<a name="commands"></a>

要在 AWS Cloud9 集成开发环境 (IDE) 中运行命令，请执行以下操作：

1. 选择 **Go（前往）**按钮（放大镜）以显示 **Go（前往）** 窗口。如果未显示 **Go（前往）**按钮，请在菜单栏上选择 **Window（窗口）、Go（前往）**。

1. 在 **Go to Anything（转到任意内容）**框中，开始键入*命令组*（如*代码编辑器*）的名称。一个组包含围绕公共主题或 IDE 功能组织的多个命令。

1. 在 **Command（命令）**标题中，从组中选择要运行的特定命令。


**可用命令组**  

| 命令组 | 描述 | 
| --- | --- | 
|   `AWS`   |  用于 [AWS Toolkit](toolkit-welcome.md)的命令  | 
|   `Clipboard`   |  用于复制和粘贴内容的命令  | 
|   `Code Editor`   |  用于导航代码编辑器界面并与编辑器内容进行交互的命令  | 
|   `Emmet`   |  用于使用用于 HTML 和 CSS 内容的 Emmet 工具包的命令   | 
|   `General`   |  用于管理 IDE 配置和项目文件的其他命令  | 
|   `Panels`   |  用于管理 IDE 界面中面板显示的命令  | 
|   `Run & Debug`   |  用于在中运行和调试项目的命令 AWS Cloud9  | 
|   `Tabs`   |  用于管理 IDE 界面中面板显示和标签页导航的命令  | 
|   `Terminal`   |  用于管理命令行终端的命令  | 
|   `Window`   |  用于管理 IDE 窗口中窗格布局的命令  | 