zsh-syntax-highlighting未完成参数展开显示黑色(黑背景终端不可读)的样式配置疑问
zsh-syntax-highlighting未完成参数展开显示黑色(黑背景终端不可读)的样式配置疑问
嘿,我刚好碰到过类似的问题,其实你遇到的这个未完成参数变黑色的情况,是zsh-syntax-highlighting里**unknown-token**这个高亮类别在起作用!
当你输入$P或者$PW这种还没完成的参数时,zsh-syntax-highlighting的main高亮器还没法识别这是一个有效的系统参数,就会把它归类到unknown-token类别,而这个类别的默认样式刚好是fg=black,刚好和你的黑背景冲突,所以就变得完全不可读了。
至于为什么只有外部命令(比如你例子里的foo)或者语法关键字(比如if)开头的行才会出现这个问题,是因为当行首是这类内容时,main高亮器会采用更严格的语法解析规则,把未完成的参数标记为unknown-token;但如果行首是内部命令(比如echo)、别名或者函数,解析逻辑会宽松一些,不会触发这个标记,所以就不会出现黑色的情况。
解决方法很简单,你只需要修改ZSH_HIGHLIGHT_STYLES[unknown-token]的样式,把它改成在黑背景下可见的颜色就行。比如你可以在.zshrc里添加这样的配置:
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=red,bold'
你可以根据自己的喜好调整颜色,比如fg=yellow或者fg=cyan都可以,只要和黑色背景能清晰区分开就好。添加完成后,执行source ~/.zshrc重新加载配置,或者新开一个终端就能看到效果了。
备注:内容来源于stack exchange,提问作者user1934428
相关产品推荐
相关产品推荐

