是否可以将Emacs shell提示符(提示符本身,而不是shell屏幕的其余部分)中的颜色与bash PS1变量一起使用?我相信我的语法是正确的(例如,PS1='[\u@\h \[\e[0;31m\]\W\[\e[m\]]\$ '
- it在term或ansi-term中有效),但似乎Emacs应用了comint-highlight-prompt face。我可以将其设置为某种颜色,它可以工作,但我希望能够将提示符的各个部分设置为不同的颜色。我更喜欢使用shell而不是term或者ansi-term,所以我不想切换。
谢谢。
发布于 2014-09-14 02:07:42
弄清楚了:comint-highlight-prompt
face被设置为从minibuffer-prompt
继承,它设置了:weight
、:foreground
和:background
。删除继承可防止comint-highlight-prompt
face覆盖PS1
中设置的颜色。已将此添加到我的.emacs
文件中。
(set-face-attribute 'comint-highlight-prompt nil
:inherit nil)
此外,M-x customize-group <ret> font-lock-faces
在解决这一问题上也很有帮助。
发布于 2018-06-10 00:51:46
我建议不要全局更改外观(因为除了shell模式之外还有许多comint用户),而是通过设置模式挂钩以特定于缓冲区的方式进行更改:
(add-hook 'shell-mode-hook
(lambda ()
(face-remap-set-base 'comint-highlight-prompt :inherit nil)))
发布于 2014-09-13 09:43:44
我用它来改变终端的颜色和mac中的信息,也许可以有所帮助:
Cyan="$(tput setaf 6)"
NC="$(tput sgr0)" # No Color
export PS1="$Cyan.Where-> \w\n\\$\[$NC\]"
https://stackoverflow.com/questions/25819034
复制相似问题