emacs 外壳模式(Mx 外壳)

Mar*_*tus 4 emacs

当我使用 emacs Mx shell模式时,我在屏幕上看到奇怪的字符,我认为这些字符与我的提示(包括行尾)和颜色的使用有关。

所以,这是我在终端上看到的:

mperdikeas@thorin:~#
$ 
Run Code Online (Sandbox Code Playgroud)

这是我在 Emacs shell缓冲区中看到的:

^[]0;mperdikeas@thorin: ~^Gmperdikeas@thorin:~#
$  
Run Code Online (Sandbox Code Playgroud)

这是我的.bashrc的相关部分:

if [ "$color_prompt" = yes ]; then
  PS1='${debian_chroot:+($debian_chroot)}\[\033[1;32m\]\u@\h\[\033[00m\]:\[\033[1;33m\]\w\[\033[00m\]#\n$'
else
  PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w#\n$ '
fi 
Run Code Online (Sandbox Code Playgroud)

如何配置 emacs 以在shell缓冲区中正确显示提示?

小智 7

可能有一个更优雅的解决方案,但这对我有用。在 .bashrc 中任何与提示相关的行之后,插入以下内容,调整 PS1 的值以适应:

# Keep it simple if running in emacs.
case "$TERM" in
  dumb)
    PROMPT_COMMAND=
    PS1="\u@\h:\W$ "
esac
Run Code Online (Sandbox Code Playgroud)