Emacs shell 模式让 $PS1 与众不同

Emacs shell 模式让 $PS1 与众不同

我有一个自定义 $PS1 变量,在命令行上如下所示:在此输入图像描述

不幸的是,在 emacs 上使用M-x shell看起来像这样:在此输入图像描述

这是我的 $PS1 变量export PS1='\[\e]0;\u@\h: \w\a\]\[\e[0;36m\]\T \[\e[1;30m\]\[\e[0;34m\]\u@\H\[\e[1;30m\] \[\e[0;32m\]\[\e[1;37m\]\w\[\e[0;37m\] \$ '

如何使 emacs shell-mode 与我的 CLI 变量看起来相同?

答案1

留下设置标题部分支持它的终端:

case $TERM in
  (xterm*) set_title='\[\e]0;\u@\h: \w\a\]';;
  (*) set_title=
esac
PS1=$set_title'\[\e[0;36m\]\T \[\e[1;30m\]\[\e[0;34m\]\u@\H\[\e[1;30m\] \[\e[0;32m\]\[\e[1;37m\]\w\[\e[0;37m\] \$ '

答案2

您的命令中有一些PS1设置终端窗口标题的命令。这些都让emacsshell 感到困惑。将你的更改PS1为这个应该可以工作:

export PS1='\[\e[0;36m\]\T \[\e[0;34m\]\u@\H \[\e[1;37m\]\w\[\e[0;37m\] \$ '

相关内容