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 會使用不含色彩的最小提示字元。