MySQL Shell 9.0  /  自定义 MySQL Shell  /  自定义提示符

13.3 自定义提示符

可以使用提示符主题文件自定义 MySQL Shell 提示符。要自定义提示符主题文件,请将 MYSQLSH_PROMPT_THEME 环境变量设置为提示符主题文件名,或将提示符主题文件复制到 Linux 和 macOS 上的 ~/.mysqlsh/ 目录,或 Windows 上的 %AppData%\Roaming\MySQL\mysqlsh\ 目录。该文件必须命名为 prompt.json,并且必须重新启动 MySQL Shell 才能使更改生效。

图 13.1 MySQL Shell 提示符

MySQL Shell prompt showing changes of input language JavaScript to SQL, SQL to Python, Python back to JavaScript.

提示符由六个部分组成

  • 状态:是否是生产系统以及连接是否已断开。

  • MySQL:提醒您正在使用 MySQL 数据库。

  • 连接:您连接到的主机,以及使用 SSL 的端口。

  • 模式:当前默认模式。

  • 模式:您正在使用的模式:JS = JavaScript,PY = Python,以及 SQL = SQL。

  • 结束:提示符以 > 结尾。

可以通过定义环境变量 MYSQLSH_USER_CONFIG_HOME 在所有平台上覆盖 mysqlsh 目录的用户配置路径,其中包含 prompt.json 文件。此变量的值将替换 Microsoft Windows 上的 %AppData%\Roaming\MySQL\mysqlsh\ 或 Unix 上的 ~/.mysqlsh/

在 Microsoft Windows 上,可以在以下目录中找到提示符主题文件:%programfiles%\MySQL\MySQL Shell 8.0\share\mysqlsh\prompt\

在 macOS 上,可以在以下目录中找到提示符主题文件:/usr/local/mysql-shell/share/mysqlsh/prompt

在 Linux 上,可以在以下目录中找到提示符主题文件:/usr/share/mysqlsh/prompt/

README.prompt 文件中描述了提示符主题文件的格式。还包括一些示例提示符主题文件,例如 prompt_256.json

在示例提示符主题 prompt_256.json 中,有一个包含 disconnected%host%%is_production% 类的对象。变量在此文件中定义,或者来自 MySQL Shell 本身,例如 %host%port。在此示例中,主机包含在环境变量 PRODUCTION_SERVERS 中。

  "variables" : {
        "is_production": {
        "match" : {
        "pattern": "*;%host%;*",
        "value": ";%env:PRODUCTION_SERVERS%;"
        },

使用 bgfg 元素定义背景色和前景色。这些元素允许您自定义提示符中使用的颜色。使用以下方法之一指定颜色

  • 按名称:使用按名称定义的颜色。

  • 按索引:使用 0 到 255(含)之间的值,其中 0 为黑色,63 为浅蓝色,127 为洋红色,193 为黄色,255 为白色。

  • 按 RGB:使用 #rrggbb 格式的值。终端必须支持 TrueColor

此示例中使用了命名颜色,如果布尔值 is_production 元素返回 TRUE,则输出文本 PRODUCTION

    "production" : {
    "text": " PRODUCTION ",
    "bg": "red",
    "fg": "white"
    }

这些元素以下列格式输出提示符

图 13.2 MySQL Shell 提示符

Customized prompt using prompt_256.json file.

颜色显示取决于终端提供的支持。大多数 Linux 和 Mac 终端都支持 256 色。在 Windows 中,颜色支持需要支持 ANSI/VT100 转义码的第三方终端程序,或者需要 Windows 10。默认情况下,MySQL Shell 会尝试检测终端类型并适当地处理颜色。如果自动检测对您的终端类型不起作用,或者您想由于辅助功能要求或其他目的修改颜色模式,则可以定义环境变量 MYSQLSH_TERM_COLOR_MODE 以强制 MySQL Shell 使用特定的颜色模式。此环境变量的可能值为 rgb25616nocolor

启动时,如果在提示符主题文件中发现错误,则会打印错误消息并使用默认提示符主题。一些示例提示符主题文件需要特殊字体(例如 SourceCodePro+Powerline+Awesome+Regular.ttf)。如果将 MYSQLSH_PROMPT_THEME 环境变量设置为空值,则 MySQL Shell 将使用不带颜色的最小提示符。