zsh-syntax-highlighting 將參數擴展寫成黑色

zsh-syntax-highlighting 將參數擴展寫成黑色

我已經安裝了zsh-語法高亮。這工作得很好,除了一個奇怪的地方:當我輸入參數擴展作為命令參數時,即

foo $PWD

一旦我輸入$P,參數擴展就會變成黑色(這使得它不可見,因為我使用帶有黑色背景的終端)。當我鍵入 時,它保持黑色$PW,並在鍵入後變為可見(前景色,但帶下劃線)$PWD。對於“未完成/未知”參數,突出顯示屬性似乎是“fg=black”,但對於已知參數只是取消行。

我喜歡它們的顏色不同,因為我可以透過這種方式儘早發現變數名稱中的拼字錯誤。然而,黑色是不可讀的,因為我也有黑色背景。

更有趣的是,只有當行中的第一個單字是外部命令(如foo我的範例中)或語法關鍵字 ( if) 時,才會發生這種情況。如果行中的第一個單字是內部命令(例如echo)、別名調用或函數調用,則不會發生這種情況。

我搜尋了文檔,但沒有找到可以在哪裡定義“未完成的參數擴展”的顏色。

我正在使用以下螢光筆:

ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern line)

我設定了各種高光類別,但沒有一個類別可以讓我簡單地將前景設為黑色。

我突出顯示了一些非常特定的參數,這對我來說很重要,如下所示:

ZSH_HIGHLIGHT_PATTERNS+=('$(oncoll|onyt|oncp|ong)' 'fg=black,bold,bg=white')

但這也不會對這裡描述的問題產生任何影響。

有人知道,哪種風格設定會影響我嗎?

答案1

main您可以找到螢光筆的所有預設樣式這裡

此時,文字 ( fg) 配置為黑色的唯一預設樣式是評論

我不知道為什麼這個foo $PW例子算是評論,但是文件描述comment為:

comment- 註釋,何時setopt INTERACTIVE_COMMENTS生效 ( echo # foo)
comment- 命令位置中省略的參數($x ls$x未設定或為空時)

第二個條件看起來已經生效,但$PW可能尚未設定。

相關內容