zsh-syntax-highlighting 用黑色显示参数扩展

zsh-syntax-highlighting 用黑色显示参数扩展

我已经安装zsh 语法高亮。这很好,除了一个奇怪的地方:当我输入参数扩展作为命令参数时,即

foo $PWD

一旦我输入$P,参数扩展就会变成黑色(由于我使用带有黑色背景的终端,因此它不可见)。当我输入 时,它保持黑色,$PW一旦输入 ,它就会变为可见(前景色,但有下划线)$PWD。似乎对于“未完成/未知”参数,突出显示属性为“fg=black”,但对于已知参数,突出显示属性仅为 unline。

我喜欢它们的颜色不同,因为这样我可以尽早发现变量名称中的拼写错误。但是,黑色是不可读的,因为我也有黑色背景。

更有趣的是,只有当行中的第一个单词是外部命令(如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可能尚未设置。

相关内容