52

これは奇妙です。私は次のプロンプトを定義しました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}"

これは、Emacs( )gnome-terminalのターミナルでもうまく機能します-以下の例を参照してください:ansi-termM-x ansi-term

プロンプトの例gnome-terminal/ansi-term

multi-termただし、以下に示すように、Emacsではうまく機能しません。

プロンプト例マルチターム

私は、端末が好きまたはmulti-termするのと同じエスケープ文字のセットを解釈できるだろうと 思いました。や他の人から返されたエスケープ文字が正しく解釈されないのはなぜですか?gnome-terminalansi-termgit-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

しかし、私がここで報告した別の問題を引き起こします:Emacsのansi-term内のシェルにエスケープシーケンスを渡すこと

4

1 に答える 1