首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Emacs shell提示符中的颜色

Emacs shell提示符中的颜色
EN

Stack Overflow用户
提问于 2014-09-13 09:40:40
回答 4查看 5.3K关注 0票数 14

是否可以将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,所以我不想切换。

谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-09-14 02:07:42

弄清楚了:comint-highlight-prompt face被设置为从minibuffer-prompt继承,它设置了:weight:foreground:background。删除继承可防止comint-highlight-prompt face覆盖PS1中设置的颜色。已将此添加到我的.emacs文件中。

代码语言:javascript
复制
(set-face-attribute 'comint-highlight-prompt nil
                    :inherit nil)

此外,M-x customize-group <ret> font-lock-faces在解决这一问题上也很有帮助。

票数 12
EN

Stack Overflow用户

发布于 2018-06-10 00:51:46

我建议不要全局更改外观(因为除了shell模式之外还有许多comint用户),而是通过设置模式挂钩以特定于缓冲区的方式进行更改:

代码语言:javascript
复制
(add-hook 'shell-mode-hook
      (lambda ()
        (face-remap-set-base 'comint-highlight-prompt :inherit nil)))
票数 6
EN

Stack Overflow用户

发布于 2014-09-13 09:43:44

我用它来改变终端的颜色和mac中的信息,也许可以有所帮助:

代码语言:javascript
复制
Cyan="$(tput setaf 6)"
NC="$(tput sgr0)" # No Color
export PS1="$Cyan.Where-> \w\n\\$\[$NC\]"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25819034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档