Linux 控制台中的 256 色

Linux 控制台中的 256 色

我的 .bashrc 中有

export TERM=xterm-256color

但这会导致 Linux 控制台 (++) 中的所有彩色文本(ls --color,在 vim 等中)Ctrl闪烁。AltF1

那么是否有可能识别我在哪个终端(Linux 控制台或伪 tty),以便我可以导出具有有效值的 TERM 变量?

[编辑]

我只找到了替代解决方案:

对于 vim 用户(在 .vimrc 中)

set t_Co=256

或 .Xdefaults 中的 xterm (之后 xrdb -load .Xdefaults)

XTerm*termName:         xterm-256color

或屏幕 (.screenrc)

term screen-256color

答案1

尝试TERM根本不导出变量。这应该由终端本身设置为适当的值。 Linux 控制台应将其设置为linux,而各种基于 X 的终端程序可能会使用您设置的值。

仅当默认值不起作用或无法通过 SSH 连接到无法识别您的环境的位置时,您才应将其设置为覆盖。

答案2

控制台 $TERM 是linux,[1] 因此您可以构建一个测试,如下所示:

if [ "$TERM" = "linux" ]; then
...

作为迦勒笔记,将环境变量 TERM 设置为您想要模拟的终端类型并不是一个好主意。

http://tldp.org/HOWTO/Text-Terminal-HOWTO-10.html#term_not_for_emulation详情

[1] 自内核版本 1.3.2 起,控制台的内核默认值为 TERM=linux。

http://tldp.org/HOWTO/Keyboard-and-Console-HOWTO-11.html

相关内容