Fonts

rxvt-unicode + mc - 僅在 root shell 中的奇怪字元

  • January 31, 2013

使用 rxvt-unicode-9.11 和 mc-4.7.5.2,並使用 zsh-4.3.11 作為我的登錄 shell,我發現我得到了奇怪的字元,例如 â 而不是正在繪製的線條。

然而有趣的是,從任何根 shell 啟動 urxvt,然後在其中執行 mc 會正確呈現這些行。

在 Xdefaults 中,我沒有設置字型。

我認為任何子 shell 都應該繼承與父 shell 相同的屬性,但顯然這裡不是。

父級中的導出:

COLON_SEPARATED=MOZ_PLUGIN_PATH
COLORFGBG='7;default'
COLORTERM=rxvt
CONFIG_PROTECT_MASK='/lib64/udev/rules.d /etc/dconf/db /etc/ca-certificates.conf'
CVS_RSH=ssh
DESKTOP_STARTUP_ID=awesome/urxvtc/2194-57-alipc-desktop-ex_TIME28147172
DISPLAY=:0.0
GDK_USE_XFT=1
GPG_AGENT_INFO=/tmp/gpg-CeLaPY/S.gpg-agent:2191:1
HOME=/home/ali
INFOPATH=/usr/share/info
JAVAC=/usr/bin/javac
JAVACMD=/usr/bin/java
JAVA_HOME=/usr/lib64/jdk
LANG=en_GB.utf8
LDPATH=/usr/local/lib:/usr/lib64/nss:/usr/lib64/vdpau:/usr/lib64/qt4
LESS='-R -M --shift 5'
LOGNAME=ali
MAIL=/var/mail/ali
MANPATH=/usr/local/share/man:/usr/share/man
MOZ_PLUGIN_PATH=/usr/lib64/mozilla/plugins:/opt/netscape/plugins
PAGER=/usr/bin/less
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/lib64/jdk/bin:/usr/lib64/jre/bin:/opt/bin:/usr/lib64/jdk/bin:/usr/lib64/jre/bin
PWD=/home/ali
SHELL=/bin/zsh
SHLVL=2
SSH_AGENT_PID=2193
SSH_AUTH_SOCK=/tmp/ssh-RhQcEipf2192/agent.2192
TERM=rxvt-256color
TERMINFO=/usr/share/terminfo
USER=ali
WINDOWID=20972128
XAUTHORITY=/home/ali/.Xauthority
_=export

兒童出口:

COLON_SEPARATED=MOZ_PLUGIN_PATH
COLORFGBG='7;default'
COLORTERM=rxvt
CONFIG_PROTECT_MASK='/lib64/udev/rules.d /etc/dconf/db /etc/ca-certificates.conf'
CVS_RSH=ssh
DESKTOP_STARTUP_ID=awesome/urxvtc/2194-57-alipc-desktop-ex_TIME28147172
DISPLAY=:0.0
GDK_USE_XFT=1
GPG_AGENT_INFO=/tmp/gpg-CeLaPY/S.gpg-agent:2191:1
HOME=/home/ali
INFOPATH=/usr/share/info
JAVAC=/usr/bin/javac
JAVACMD=/usr/bin/java
JAVA_HOME=/usr/lib64/jdk
LANG=en_GB.utf8
LDPATH=/usr/local/lib:/usr/lib64/nss:/usr/lib64/vdpau:/usr/lib64/qt4
LESS='-R -M --shift 5'
LOGNAME=ali
MAIL=/var/mail/ali
MANPATH=/usr/local/share/man:/usr/share/man
MOZ_PLUGIN_PATH=/usr/lib64/mozilla/plugins:/opt/netscape/plugins
OLDPWD=/home/ali
PAGER=/usr/bin/less
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/lib64/jdk/bin:/usr/lib64/jre/bin:/opt/bin:/usr/lib64/jdk/bin:/usr/lib64/jre/bin
PWD=/home/ali
SHELL=/bin/zsh
SHLVL=4
SSH_AGENT_PID=2193
SSH_AUTH_SOCK=/tmp/ssh-RhQcEipf2192/agent.2192
STY=27048.pts-2.alipc-desktop-ex
TERM=rxvt-256color
TERMINFO=/usr/share/terminfo
USER=ali
WINDOW=0
WINDOWID=27262984
XAUTHORITY=/home/ali/.Xauthority
_=export

謝謝。

編輯:更多資訊+組合:.zshrc:

# The following lines were added by compinstall

zstyle ':completion:*' completer _expand _complete _ignored
zstyle ':completion:*' group-name ''
zstyle ':completion:*' list-colors ''
zstyle ':completion:*' menu select=long
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
zstyle ':completion:*' use-compctl false
zstyle :compinstall filename '/home/ali/.zshrc'

autoload -U zutil
autoload -Uz compinit
autoload -U complist
compinit
autoload -U colors
colors
# End of lines added by compinstall
# Lines configured by zsh-newuser-install
HISTFILE=~/.histfile
HISTSIZE=1000
SAVEHIST=1000
setopt appendhistory autocd extendedglob notify
unsetopt beep
bindkey -v
# End of lines configured by zsh-newuser-install

#export PS1="%n#%d>"

PROMPT="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%d %{$reset_color%}%#"
RPROMPT="[%{$fg[yellow]%}%T%{$reset_color%}]"

locale -a: C en_GB.utf8 en_US.utf8 POSIX

從 ‘urxvt -e zsh -f’ 導出: - 工作集!

COLORFGBG='7;default'
COLORTERM=rxvt
DESKTOP_STARTUP_ID=awesome/urxvt/2199-28-alipc-desktop-ex_TIME11280170
DISPLAY=:0.0
GPG_AGENT_INFO=/tmp/gpg-d5ZFvz/S.gpg-agent:2196:1
HOME=/home/ali
LOGNAME=ali
MAIL=/var/mail/ali
PATH=/bin:/usr/bin:/usr/local/bin
PWD=/home/ali
SHELL=/bin/zsh
SHLVL=2
SSH_AGENT_PID=2198
SSH_AUTH_SOCK=/tmp/ssh-sPZhKOhV2197/agent.2197
TERM=rxvt-unicode-256color
TERMINFO=/usr/share/terminfo
USER=ali
WINDOWID=23068680
XAUTHORITY=/home/ali/.Xauthority
_=export

注意:我確實嘗試通過 .Xdefaults 將我的 TERM 設置為在“乾淨”視窗中工作的那個:

urxvt*termName:  rxvt-unicode-256color

雖然這沒有效果,但影響這一點的不是 TERM。

STY您在孩子中設置了環境變數。鑑於它的存在和它的內容,孩子實際上是在 Screen 內執行。您的環境不正確(即它對應用程序撒謊)有兩種方式:

  • 您有一個 Unicode 終端,並且您正在嘗試顯示非 ASCII 字元。然而你的環境沒有定義LC_CTYPE. 如果要顯示非 ASCII 字元,則必須設置LC_CTYPE,通常設置為en_US.UTF-8.
  • 您正在使用 Screen,終端類型 ( $TERM) 被聲明為rxvt-256color.

.zshrc你的關於可能有問題TERM。因為LC_CTYPE,如果您總是在 UTF-8 語言環境中工作,那麼將其設置在您的.profile.

引用自:https://unix.stackexchange.com/questions/14467