Mx ansi-termでZshを使用してプロンプトが表示される前に4m離れる


10

私が最近読んEmacsの中にシェルを実行している、との限定された機能を持つ仕事への迅速私の精巧なZshの適応するためのいくつかの時間を過ごすM-x shellとをM-x ansi-term

この努力の結果、ようやくEmacs内からZshを使用できるようになりました。ただし、マイナーではありますが、には厄介な点がありM-x ansi-termます。4mプロンプトの前に常にテキストが表示されます。

プロンプトの前の迷子のテキスト

ご覧のとおり、この現象は実際のプロンプトテーマとは無関係のようです。また、組み込みのプロンプトのいずれかとともに表示されます。派手な制御文字を使用しない単純なプロンプトでも表示されます。実際のところ、デフォルトのプロンプトでも発生します。つまり、なしでZshを起動した場合.zshrcです。

まあ、それはほんのマイナーな迷惑であり、私がそれを取り除くことができなかったとしても私は本当に気にしません—私はM-x shellとにかくたいていこの問題が発生しない場所を好みます。

しかし、本当にデバッグしようとしたのに、この問題の原因を見つけることができなかったのは本当にうんざりしています。ただし、端末についての私の理解はかなり限られているので、非常に明白なものは見逃したかもしれません。

OS X 10.10を使用しています。私のEmacsは25.0.50で、Homebrewを使用してトランクから直接ビルドし、特別なフラグはありません。Yosemiteに含まれているZshは5.0.5ですが、Homebrew経由でインストールされた5.0.7でも問題が発生します。

誰でもこの問題に光を当てることができますか?


.zshrcまたは(setq system-uses-terminfo nil)でエクスポートTERM = xterm-256colorを設定してみてください。
kmicu 2015年

system-user-terminfo何も変更しませんでした。変更$TERMすることで問題は修正されましたが、それは解決策ではありませんか?結局のところ、それは本質的に嘘ansi-termです。xtermでなく、256色を確実にサポートしていません。
lunaryorn 2015年

4mは、色を定義するために使用されるANSIエスケープコードのアーティファクトです。たとえば\x1b[37;4m、37で白色、4で下線付きのテキストを指定します。問題を再現できません。私のzshは、5.0.7および'エコー$ TERM' ANSI-用語で私が与えるeterm-色を、私のemacsのです24.4.1。クリーンなデフォルトバージョン「env HOME =〜/ tmp / emacstest emacs -Q」もテストしましたが、問題はありません。
kmicu 2015年

@kmicu OS X 10.10では、emacs -QZsh構成をまったく使用せずに一貫して問題を再現できます。
lunaryorn 2015年

回答:


10

どうやらこの問題は、のterminfoがないためにeterm-color発生します。その答えの指示に従って適切なエントリをterminfoデータベースにインストールすることで、なんとか問題を解決することができました。具体的には:

$ tic -o ~/.terminfo /usr/local/share/emacs/25.0.50/etc/e/eterm-color.ti

なぜそれが必要なのかはまだわかりません。 term.el実際$TERMINFOにそのディレクトリを指す変数をエクスポートするので、シェルはterminfoを見つけることができます。Zshはディレクトリを無視しているようですが…

~/.terminfoただし、は確認されるので、上記のコマンドはterminfoエントリをZshで利用できるようにします。

誰かがより良い説明や手動の介入を必要としない解決策を提供できたらうれしいです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.