这很奇怪。我在中定义了以下提示zsh:
local user_host='%{$terminfo[bold]$fg[green]%}%n @ %m%{$reset_color%}'
local current_dir='%{$terminfo[bold]$fg[blue]%} %~%{$reset_color%}'
local git_branch='$(git_prompt_info)%{$reset_color%}'
local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
PROMPT="╭─${user_host} %D{[%a, %b %d %I:%M:%S]} ${current_dir} ${git_branch}
╰─%B$%b "
RPS1="${return_code}"
它gnome-terminal在ansi-termEmacs M-x ansi-term(

multi-term但是,它在 Emacs中不能很好地工作,如下所示:

我认为multi-term能够解释终端喜欢 gnome-terminal或ansi-term所做的同一组转义字符。为什么它不能git-prompt_info正确解释和其他人返回的转义字符?
我也试过:
- M-x
set-terminal-coding-system并将其设置为utf-8-unix TERM=eterm-color在多术语终端内,或在调用 Emacs 之前等。TERM=在多术语终端内,或在调用 Emacs 之前等。export TERM从我的删除任何.zshrc
更新(2014 年 1 月 29 日):
到目前为止,最好的解决方案似乎是执行以下操作:
TERM=xterm-256color
但会导致我在这里报告的另一个问题:Passing escape sequences to shells within ansi-term in Emacs。