MySQL Shell 8.4  /  自訂 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 來覆寫 prompt.json 所在的 mysqlsh 目錄的使用者組態路徑。此變數的值會取代 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 會使用沒有色彩的最小提示字元。