我刚刚通过全新安装升级到 Debian 8,我的终端提示符(prompt adam2 8bit
使用 ZSH)不再正确显示某些字符:
我已经检查了终端编码(设置为 Unicode UTF-8)和$TERM
环境变量(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
。该文件位于/etc/zshrc
变量$PS1
存储编码(我相信是 ASCII)信息以产生提示的情况。
您要做的第一件事就是看看您$PS1
目前的状况。要执行此操作,请echo $PS1
在终端中键入。 Debian 8 的标准提示符中兴是%m%#
,它等于hostname%
或无论您的主机名是什么(我的提示符是localhost%
)。最有可能的是,您奇怪的终端提示符的原因是一个混乱的$PS1
变量,因此将其更改回PS1="%m%#"
终端中默认的 Debian 8 ZSH 提示符类型...请记住,这是暂时的,您的提示符每次都会重置您退出终端。要使此更改永久化,请打开您的/etc/zshrc
文件并将其附加
PS1="%m%#"
到该文件。键入exit
以关闭终端,然后再次打开它。应显示新的固定终端提示符。
附注
这些说明适用于中兴,不是 巴什! Debian 8 中 bash 的默认提示符\u@\H: \w $
相当于username@hostname: ~ $
(如果我在该目录中/bin
,我的提示符将类似于bradleysadowsky@localhost: /bin $
)。 ZSH 提示符中的字符与 bash 提示符中的字符非常不同。 Bash 有 ZSH 没有的字符,反之亦然。另一个关键区别是(大部分)在 bash 中,特殊$PS1
字符以反斜杠 ( \
) 开头,而在 ZSH 中(大部分),特殊$PS1
字符以百分号符号 ( %
) 开头。有关更有用的 ZSH 转义字符的详细列表,请访问这网页。有关 bash 中的变量和 bash 的一些转义字符的综合指南$PS1
,请访问这网页。
最后
要设置您自己的提示符,只需以您喜欢的方式将这些转义字符放在一起,然后编辑 /etc/zshrc 添加您的提示符即可。对于 ZSH 来说,一个有用且美观的好提示是,[%n@%m] %~>
它相当于[username@hostname] ~>
,所以对我来说(如果我在的话/bin
)[bradleysadowsky@localhost] /bin>
。