在emacs内部打开shell(M-x shell),如果$PS1或$PROMPT_COMMAND含有控制字符(比如颜色)会出现乱码。
网上有几中解决办法都不中意,突然想到emacs会不会设置一些环境变量?
env后果然,当在emacs中打开shell会有$INSIDE_EMACS这个环境变量,我们就可以根据它在.bashrc设置相应提示符了,
我的配置如下:
if [ ! ${INSIDE_EMACS+'inside_emacs'} ]; then #非emacs环境运行时的提示符 else #emacs中运行shell时 export PROMPT_COMMAND=''; (清空,反正也没啥用) export PS1="\$? [emacs] \w \$ "; (提示符) fi