同僚のマシンでプログラミングをしています。彼は私が今まで使ったことがないバージョンのemacs(23.1.1)を持っています。私の問題は、シェルモードに移行すると、bashプロンプトが次のようになることです。
^[]0;jay@socrates:~^G[jay@socrates]$
PS1
で'[\u@\h]\$ '
を.bashrc
に設定しています。次のようになります。
[jay@socrates]$
これは、通常のシェルでどのように見えるかです。また、emacsシェルでPS1が正しい値に設定されていることを確認したので、今はアイデアがありません。プロンプトを希望どおりに表示するにはどうすればよいですか?
term
の代わりにeshell
またはShell
を使用する提案を見てきました。 term
には上記と同じプロンプトの問題があり、eshell
は私のPS1
を完全に無視するため、実際には役に立ちません。
シェルがXTerm(または他のコンソール)のタイトル/ヘッダーを設定しようとしています。これが行われる可能性のあるいくつかの方法があります。
まず、PS1が本当にあなたが思っているものであることを確認してください
echo $PS1 | less -E
プロンプトに制御文字があるかどうかがわかりますが、少ないと面白く見えます。プロンプトがあなたの言うとおりであると仮定すると、それはおそらくPrompt_COMMAND環境変数です。あなたはそれを同じように見ることができます...
echo $Prompt_COMMAND | less -E
プロンプトコマンドが問題である場合は、設定を解除するだけです。いずれの場合も、これらの変数はどこかに設定されているため、XTermを使用していない場合は、XTermヘッダーを更新するように設定しないでください。
「標準」のbashrc(/ etc/bashrc)を調べることができます。反復シェル(PS1が設定されている)をチェックし、次にxterm($ TERM変数を参照)をチェックし、他の端末タイプとは異なる処理を行うコードが表示されます。
Bashの初期化のどこかにハードコードされたセットアップがあると思います。これは、xterm互換のコンソールプログラムでのみ実行する必要があります。 man bashを読んで、探したり調べたりできるファイルの全リストを見つけてください。
上記のすべてが失敗した場合は、試してください
printenv | less
そして、そこに疑わしいものを見つけることができるかどうかを確認し、それが設定されている場所を追跡します。うまくいかない場合は、ここに投稿してください。
まったく同じ問題が発生しましたが、これはPrompt_COMMANDが原因です。 xtermのタイトルが好きです。だから私は〜/ .emacs_bashに次の行を追加しました
export Prompt_COMMAND=""
これは、emacsシェルと通常のシェルの端末タイプに関係している可能性があります。両方のシェルでTERM
環境変数が何に設定されているかを確認してください。それらが異なる場合は、emacsシェル端末タイプを変更するか、.bashrc
のemacs端末タイプに異なるPS1定義を使用できるはずです。
M-x ansi-term
(およびカラープロンプトがある場合はansi-color-for-comint-mode-on
)を試すこともできます。
これはstackoverflowサイトで非常によく答えられました。ダニエルポーによる。
色をサポートするAnsiTermを使用するか、通常のシェルでAnsiColorを有効にすることができます。
(autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t)
(add-hook 'Shell-mode-hook 'ansi-color-for-comint-mode-on)