注意:此提示适用于 SecureCRT 版本 8.3 及更高版本。

SecureCRT 支持两种不同的方法来控制终端窗口中显示的文本颜色:

  • 配色方案

  • ANSI 颜色

此提示提供有关这两种颜色配置方法的详细信息,包括有关它们如何组合在一起进行交互的信息。

下面的问答”部分提供了有关在 SecureCRT 中使用颜色的常见问题的解答。

一.配色方案

SecureCRT 中的颜色方案是本地配置设置,用于指示 SecureCRT 用于终端中显示的文本的前景色和背景色。这些配色方案配置包括 SecureCRT 将用于显示正常、粗体、下划线和闪烁属性的独立前景和背景色的集合。

所有会话都使用配色方案来确定初始前景色和背景色。默认情况下,会话配置为使用内置的 Solarized Light 配色方案。

1.1在 SecureCRT 中创建自定义配色方案

要在 SecureCRT 中创建自定义配色方案:

  • 按位于“全局选项”对话框的“终端/外观/高级”类别中的“新建...”按钮。

  • “前景”或“背景”按钮从色块中显示的“基本颜色”中选择一种颜色,或使用颜色选择器选择所需的颜色。

1.2在 SecureCRT 中编辑配色方案

您可以通过 SecureCRT 中的“全局选项”或“会话选项”对话框编辑自定义或内置方案。

“全局选项”/“终端”/“外观”/“高级”中,从列表中选择所需的配色方案,然后选择“编辑...”以编辑前景色/背景颜色,如上文“创建自定义配色方案”主题中所述。

为方便起见,还可以在“会话选项”/“终端”/“外观”中编辑配色方案,方法是选择所需的配色方案并按“编辑...”按钮。

请注意,SecureCRT 中的颜色方案是全局的,因此在“会话选项”中对颜色方案所做的任何更改都将全局反映在配置为使用相同颜色方案的所有会话中。

1.3在 SecureCRT 中应用配色方案

虽然配色方案在全球范围内可用,但它们可以基于每个会话应用。有几种方法可以将颜色方案应用于 SecureCRT 中的会话。

要将提供的或自定义的颜色方案应用于单个会话,请从“会话选项”的“终端/外观”类别的“当前颜色方案”下拉列表中选择它。

  • 有关如何将相同的配色方案应用于所有会话的信息,请参阅下面的第一个问题和答案。

  • 有关如何一次将相同配色方案应用于一组会话的信息,请参阅下面的第二个问题和答案。

注意:“全局选项”/“终端”/“外观”/“高级”类别不是选择或选择创建新会话时默认使用的颜色方案的地方。新会话的默认配色方案是通过编辑默认会话来指定的,并从可用配色方案列表中进行选择。

二.ANSI 颜色

远程主机(或在远程主机上运行的应用程序)可能会发送 ANSI 颜色转义序列,以指定终端应用于显示收到的后续文本的前景色和背景色。通常,ANSI 颜色由一个转义序列组成,该转义序列包括 16 种唯一颜色中的一种或多种的表示形式。其中 8 个转义序列对应于所谓的正常颜色,其他 8 个通常对应于这些颜色的粗体(或明亮)版本。

可以将 SecureCRT 会话配置为遵循或忽略从远程主机发送的 ANSI 颜色代码,该颜色代码由“会话选项”对话框的“终端/仿真”类别中的“颜色模式”选项指定。当选择“无”作为“颜色模式”选项时,将禁用 ANSI 颜色。

2.1编辑默认 ANSI 颜色

根据启用 ANSI 颜色时远程应用程序发送的颜色代码,在某些情况下,默认颜色可能不理想。可以在 SecureCRT 的全局选项中全局修改 NormalBold 属性的 ANSI 颜色。

例如,远程应用程序可能会发送颜色代码,导致默认的紫色显示在浅色背景上,从而使其难以阅读。将默认的体紫色更改为更亮的阴影可能会在浅色背景上更易于阅读。

之前(默认紫色很难看到):

之后默认紫色更改为更亮的紫色阴影):

2.2将 ANSI 颜色与配色方案相结合

在 SecureCRT 版本 5.5 及更高版本中,可以将 ANSI 颜色功能与自定义或提供的颜色方案结合使用。

如果 SecureCRT 从远程主机/应用程序接收到正常的 ANSI 颜色代码,SecureCRT 将以应用的颜色方案定义的颜色显示文本。所有其他 ANSI 颜色代码将导致文本根据“全局选项”中定义的 ANSI 颜色进行着色。

三.问答

3.1问:如何将特定配色方案应用于所有现有会话?

一个: 通过编辑默认会话,然后将颜色方案更改应用于所有会话,可以将颜色方案应用于所有现有会话。

以下是明确的步骤:

  1. 打开主选项菜单,然后选择全局选项...

  2. “全局选项”窗口出现时,选择“常规/默认会话”类别,然后按“编辑默认设置...”按钮。

  3. 选择“终端/外观”类别,然后指定要用于已定义的所有会话的颜色方案。请注意,您对默认会话所做的任何更改都将成为此后创建的任何新会话的默认设置。

  4. OK 按钮。您将看到以下警告:

3.2问:如何仅将特定配色方案应用于会话的子集?

一个: 您可能希望仅将特定配色方案应用于会话的子集,而不是将更改应用于所有会话。这可以在 SecureCRT 的“连接”对话框中完成:

  1. 打开会话管理器

  2. 按住 CTRL 键,左键单击鼠标以选择要修改的会话和文件夹的任意组合。

  3. 右键单击其中一个选定项,然后选择“属性”。

  4. 将出现一条消息,让您知道要修改多少个会话(如果您以前没有以这种方式编辑过多个会话,并且没有选择停止显示对话框)。按 OK 按钮继续修改会话的属性。

  5. 选择“终端/外观”类别,然后指定要用于所选会话的颜色方案。

  6. OK 按钮保存对您之前选择的每个会话的更改。

3.3问:终端窗口中显示的颜色与我在应用于正在使用的会话的颜色方案中定义的颜色不同。可能出了什么问题?

一个:需要注意的是,配色方案是全局定义的(在“全局选项”中),但在“会话选项”对话框的“终端/外观”类别中按会话应用。

如果已确认在会话选项中选择了所需的配色方案,则“会话选项”对话框的“终端/仿真”类别中的“ANSI 颜色”选项可能也已启用,但未启用使用配色方案”选项。启用“使用配色方案”选项,允许使用配色方案的“正常”属性、前景色和背景色来代替 ANSI 颜色的“正常”属性、前景色和背景色,从而解决问题。

如果在启用“使用颜色方案”选项后仍未获得所需的颜色,则表明远程主机/应用程序可能正在使用不适用于颜色方案的 ANSI 颜色转义序列。在这种情况下,您需要在“全局选项”中编辑 ANSI 颜色选项,以反映您对远程主机/应用程序发送的 ANSI 颜色代码的首选项。

3.4问:我已经尝试了 SecureCRT 中存在的所有配色方案,但没有一个能真正实现我想要的。我可以添加新的配色方案或编辑现有的配色方案属性吗?

一个:SecureCRT 提供 20 多种预定义的配色方案,如“全局选项”对话框的“终端/外观/高级”页面所示。可以在“全局选项”对话框中添加新的配色方案。所有配色方案也可以在此处编辑。

请注意,由于颜色方案是在 SecureCRT 中全局定义的,因此在会话选项中对颜色方案所做的任何更改都将在也配置为使用相同颜色方案的每个会话中全局反映。

3.5问:我启用了 ANSI 颜色(我更喜欢使用 ANSI 颜色而不是颜色方案),并且我看到黑色背景上的白色文本。但是我想要白色背景上的黑色文本。如何配置 SecureCRT 以使用 ANSI 颜色显示此内容?

一个:“全局选项”对话框中,选择“终端/外观/ANSI 颜色”类别。正常前景 ANSI 颜色显示在/设置在“正常颜色”部分顶行的最右侧。正常背景 ANSI 颜色显示在/设置在“正常颜色”部分顶行的最左侧。要编辑这两种颜色,请按色块按钮并选择要使用的新颜色。

3.6问:如果我选择了颜色方案并且都启用了颜色模式选项,该怎么办?会发生什么?

一个:在当前版本的 SecureCRT 中,如果在“会话选项”对话框中启用了“使用颜色方案”选项和“颜色模式”选项,则颜色方案和 ANSI 颜色将协同工作。

3.7问:我在远程应用程序中显示颜色时遇到了问题(例如,vi/vim 中的语法高亮显示)。我能做些什么?

一个:没有通用的解决方案,但可以进行一些概括:

  • 像 vi/vim/emacs 这样的远程应用程序通常只会向宣传自己为“xterm”或 Xterm 变体(如“xterm-color”)的终端发送 ANSI 颜色代码。如果您在 SecureCRT 中使用 VT100 仿真,则 vi/vim/emacs 等远程应用程序可能不会发送 ANSI 颜色代码。

  • 解决方案:
    将 SecureCRT 中的终端仿真设置为 Xterm,然后重新连接到远程主机。注意:SecureCRT 并不关心它当前配置为模拟哪个终端。只要“颜色模式”选项未设置为“无”,如果 SecureCRT 收到 ANSI 颜色转义序列,它将使用它(除非颜色方案覆盖该特定颜色代码)。

    替代解决方案:
    “会话选项”对话框的“终端/仿真/高级”类别中,将“终端类型”设置为“xterm”或“xterm-color”;断开连接,然后重新连接,以便远程系统能够看到新的通告终端类型。

  • 如果遥控器正在发送 ANSI 颜色代码,但它们未显示在 SecureCRT 的终端窗口中,则强烈表明“颜色模式”选项当前设置为“无”。

  • 解决方案:
    “会话选项”对话框的“终端/仿真”类别中启用“ANSI 颜色”选项。

3.8问:如何判断远程系统正在使用哪种终端类型?

A:回声$TERM

即使 SecureCRT 可能配置了 Xterm 仿真,远程配置文件也可能具有将终端类型硬编码为您在 SecureCRT 中配置的内容以外的内容的指令。要检查远程系统正在使用的终端类型,请在远程 shell 中发出 echo $TERM 命令。

此外,一些远程应用程序具有配置文件,这些文件可能会更改或硬编码终端类型,从而阻止 SecureCRT 接收 ANSI 颜色序列。

3.9问:ANSI 仿真是否与 ANSI 颜色相同?

一个:不,它们是完全不同的。如果将“颜色模式”选项设置为“无”,则即使正在使用 ANSI 仿真,也会忽略 ANSI 颜色序列。