根据aweshell-validate-command函数的逻辑,是只对eshell-prompt-regexp\\([^ \t\r\n\v\f]*\\)
匹配到的命令部分加上face,并且设置rear-nonsticky,但没有考虑对已经加过face部分的修改,比如输入ls./
然后在ls
和./
之间加入空格,预期的结果应该是ls
绿色而./
无色,但按照现有代码的逻辑,ls
却是红色的,并不是提前预判吧?
我在linux上用的aweshell出现一个大竖标,macos上就很正常。
我的font配置如下(let ((emacs-font-size 12)
emacs-font-name)
(setq emacs-font-name "InconsolataGo QiHei NF")
(when (display-grayscale-p)
(set-frame-font (format "%s-%s" (eval emacs-font-name) (eval emacs-font-size)))
(set-fontset-font (frame-parameter nil 'font) 'unicode (eval emacs-font-name))
))
aweshell是0配置,同配置在mac上很正常,在archlinux上就不对。其他的shell也正常 比较奇怪,没明白是哪里出了问题
emacs -Q 对比测试一下
二分法跑了一遍,结果竟然是这个字体的问题,换个字体就好了。一开始没想到,因为我在doom上也用的这个字体,在那边没啥事情