新しくインストールしてDebian 8にアップグレードしたところ、ターミナルプロンプト(prompt adam2 8bit
ZSHを使用)が特定の文字を正しく表示しなくなりました。
$TERM
ターミナルエンコーディング(Unicode UTF-8に設定)と環境変数(xterm-256color)はもちろん、複数のターミナルエミュレータとフォントを確認しましたが、実際のUnicode文字を提供するものは何もありません。また、.zshrc
発送後完全に裸になってもこのような現象が発生します。
$ autoload -Uz promptinit
$ promptinit
$ prompt adam2 8bit
ターミナルに行きます。私のlocale
読書
LANG=en_US.utf8
LANGUAGE=
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=
答え1
これは変数に問題がある可能性が高いです$PS1
。変数$PS1
はファイルに定義されていますzshrc
。このファイルは、プロンプトが生成されたときにエンコード(ASCIIであると推定)情報を格納する/etc/zshrc
変数にあります。最初にすべきことは、現在の状況を調べることです。これを行うには、端末に入力します。 Debian 8 標準プロンプト$PS1
$PS1
echo $PS1
ZTEはい、ホスト名は何でも%m%#
同じです(私のプロンプトはです)。奇妙なターミナルプロンプトの原因は台無しにされた変数である可能性が高いので、ターミナルからデフォルトのDebian 8 ZSHプロンプトタイプに戻ります...これは一時的であり、プロンプトは終了するたびに文字がリセットされることを忘れないでください。ターミナル。この変更を永久に適用するには、ファイルを開いて追加してください。端末を閉じて再度開くには、入力してください。新しい固定端末プロンプトが表示されます。hostname%
localhost%
$PS1
PS1="%m%#"
/etc/zshrc
PS1="%m%#"
exit
メモ
このガイドラインは以下に適用されます。ZTE、いいえ 強く打つ! Debian 8では、bashのデフォルトのプロンプト\u@\H: \w $
は次のようになりますusername@hostname: ~ $
(もしそのディレクトリにあった場合、/bin
プロンプトは次のようになりますbradleysadowsky@localhost: /bin $
)。 ZSHプロンプトの文字はbashプロンプトの文字とは大きく異なります。 BashにはZSHにない文字があり、その逆も同様です。もう1つの主な違いは、(ほとんど)bash特殊$PS1
文字は\
バックスラッシュ()で始まり、ZSHでは(ほとんど)特殊$PS1
文字がパーセント記号(%
)で始まるということです。より便利なZSHエスケープ文字の詳細なリストについては、次のサイトをご覧ください。これWebページ。 bashの変数とbashのエスケープ文字のいくつかの包括的なガイドについては、$PS1
次をご覧ください。これWebページ。
ついに
独自のプロンプトを設定するには、このエスケープ文字を必要な方法で組み合わせて/etc/zshrcを編集してプロンプトを追加します。便利で美しいZSHの良いヒントは、[%n@%m] %~>
同等であることです[username@hostname] ~>
。したがって、私にとっては(私が周りにいた場合/bin
)です[bradleysadowsky@localhost] /bin>
。