(問題を表示する際のEmacsの役割を明確にするために編集されました。)
現在gnu-screen
セッションが破損しているため、EmacsはUTF-8文字を正しく表示できません。
Emacsが新しく起動したプロセスgnu-screen
でUTF-8文字を正しく表示することを確認しましたが、現在破損しているgnu-screen
セッションを新しいセッションに置き換えることは非常に支障をきたす可能性があります。
私はこの破損した
gnu-screen
セッションの問題をさらに解決するよう努めており、それを修正できることを願っています。
FWIWは、問題を診断するためにこれまでに行ったことの説明を含む、以下にさらに詳細な情報を提供しました。
gnu-screen
私は数日前にオフィスでこのコースを始めました。オペレーティングシステムワークステーション
% screen -U
...(いつものように)。それ以来、私は複数のコンピュータでこのセッションを再接続しました(おそらくssh
私が働いているワークステーションに最初に接続した後です)。
% screen -U -dR
(つまり、これは私がいつもやっていることです。)私は今朝私のワークステーション(プロセスが実際に実行されているコンピュータ)でgnu-screen
まさにこれをしました。
今日は、このセッションの作成以来、gnu-screen
ASCII以外のUTF-8文字を含むファイルを最初に処理する必要がありました。それから私はこのgnu-screen
セッションがこれらの文字をすべて表示して?
ディスプレイを使用できなくするので、何らかの方法で破損する必要があることに気づきました。
(すでに述べたように、これらのUTF-8リッチファイルは新しく開始されたセッションで正しく表示されるため、ここでは「破損」と呼ばれる特定のセッションに表示の問題があることがわかりますgnu-screen
。に表示されるので、問題はセッションをホストするターミナルプログラムにはありません。gnu-screen
???
gnu-screen
gnu-screen
返品問題が特定のEmacsセッションにないことを確認してください。破損したgnu-screen
セッションですべて?
新しいEmacsセッションは、特定のEmacsセッションの問題に関連するUTF-8文字をとしてマークします。 )
私はこれを実行しutf8
て確認しました。on
:utf8 on on
の出力は:info
次のとおりです。
(1,5)/(210,52)+10000 +(-)flow app log UTF-8 0(zsh)
そして、FWIW:
% /usr/local/bin/screen --version
Screen version 4.00.03 (FAU) 23-Oct-06
また、私はそれを指摘する必要があります新しい
この問題を解決するにはどうすればよいですか?
修正する:Drav SloanとStephane Chazelasはどちらも私の地域について尋ねました。
% locale
LANG=
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=
現在、OS XIの場合、ロケール固有の変数は設定されません。
Linuxシステムでは、私の.zshenv
設定は次のとおりです。
export LANG=en_US.utf8
export LC_ALL=en_US.utf8
...しかし、Darwinの.zshenvに同じ行を置くと、「ロケール設定に失敗しました」というエラーメッセージが表示されます。私はDarwin / Lionに適した場所を見つけるために何時間も頭をぶつけたことを漠然と覚えています。 「何も設定しない」は、おそらく問題に対する「最悪の」解決策です。結局のところ、gnu-screen
少なくとも新しいセッションは明示的なロケールなしでUTF-8文字を正しく表示します。しかし、明らかにDarwin / Lionでロケールを正しく設定する方法を理解する必要があります...
アップデート2: いいですね。上記のエラーの原因を見つけたようです。 Darwin / Lionでは文字列がen_US.utf8
無効です。代わりにen_US.UTF-8
。
答え1
実行時に同じ問題が発生しました。
git clone https://github.com/jwiegley/git-scripts.git
cd git-scripts
perl git-forest
私はこれをテストとして使用しました。デフォルトでは、utf8を正しく設定すると素晴らしいラインが得られます。それ以外の場合、見苦しいボックスや文字が表示されます。
解決策は、次のようLC_ALL
に設定する必要があることです。en_US.UTF-8
今後新しい画面セッションを開始します。スクリーンセッションを作成した後、これを実行するのに疲れましたが、運はありません。
これを達成するために実行した手順は次のとおりです。
1)locale
現在の設定を表示するには実行してください。私はこれを得ました(私が問題を抱えている理由を説明します:
LANG=en_US.UTF-8
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=C
2)LC_ALL
新しい画面セッションを作成する前にオーバーライドする必要があります。en_US.UTF-8
csh
シェルを使用する場合
setenv LC_ALL en_US.UTF-8
bash
シェルを使用する場合
export LC_ALL="en_US.UTF-8"
三) 次の操作をやり直して、LC_ALL
設定が正しいことを確認してくださいlocale
。
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
4)これで、新しいスクリーンセッションを実行してgit-forest
テストを実行すると、素晴らしいラインが見えます。