Gnu-Screen
BitchX 中的 ANSI 無法正確顯示
我試圖讓 ANSI 在 OS X 上使用 Iterm2 的螢幕會話中正確顯示,預設 TERM 設置為
screen.xterm-256color
我試過
export TERM=vt100
和
export TERM=ansi
和
export TERM=xterm w/ tmux
問題不在於終端仿真 - 保持 TERM 設置不變。
就是UI的那些部分使用的字元集是CP437,但是您的終端設置為另一個字元集(可能是UTF8)。
您可以將 iTerm2 設置為使用 CP437(如果它支持)(設置在終端/字元編碼下),或者您可以使用cp437 實用程序在 UTF-8 終端上模擬 CP437 終端。
設置
TERM=ansi
將無法正常工作,因為tmux
僅設計用於處理screen
終端描述中的轉義序列。如果您這樣做
infocmp ansi screen
,您可能會注意到這些行,顯示終端應用程序將使用的終端功能,這在兩個終端描述之間有所不同,但 tmux 和/或 iTerm2 在以這種方式誤導時會處理錯誤:ech: '\E[%p1%dX', NULL. rep: '%p1%c\E[%p2%{1}%-%db', NULL. rin: '\E[%p1%dT', NULL. rmpch: '\E[10m', NULL. rmacs: '\E[10m', '^O'. smacs: '\E[11m', '^N'. smpch: '\E[11m', NULL.
由於 tmux 很混亂,因此無法保證顯示屏上會顯示什麼。
這同樣適用於
TERM=xterm
。該tmux
手冊記錄了這一限制。設置
TERM=vt100
很接近(用於infocmp
查看),但大多數人都知道vt100 從未做過 ANSI color。