![Emacs shell 模式让 $PS1 与众不同](https://linux22.com/image/46111/Emacs%20shell%20%E6%A8%A1%E5%BC%8F%E8%AE%A9%20%24PS1%20%E4%B8%8E%E4%BC%97%E4%B8%8D%E5%90%8C.png)
我有一个自定义 $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
设置终端窗口标题的命令。这些都让emacs
shell 感到困惑。将你的更改PS1
为这个应该可以工作:
export PS1='\[\e[0;36m\]\T \[\e[0;34m\]\u@\H \[\e[1;37m\]\w\[\e[0;37m\] \$ '