为什么要tmux
举报
$TERM=screen-256color
通常kitty
报告
$TERM=xterm-kitty
如果我在tmux
里面跑步,应该使用哪个kitty
?显然kitty
,它提供了高级功能,因此它可以进行报告xterm-kitty
。屏幕为什么会报告说screen-256
有程序需要知道它们正在屏幕上运行?打电话给Kitty跑屏幕会不会有问题xterm-kitty
?
如果我在kitty中运行tmux,应该使用哪个?
运行时,tmux
您必须使用TERM=screen
,TERM=tmux
或衍生工具之一,例如TERM=screen-256color
或TERM=tmux-256color
。
男人tmux(1)
说...
对于在tmux中运行的所有程序,必须将TERM环境变量设置为“ screen”。新窗口将自动在其环境中添加“ TERM = screen”,但必须注意不要在shell启动文件中重置此窗口。
..并进一步澄清...
为在此会话中创建的新窗口设置默认终端-TERM环境变量的默认值。为了使tmux正常工作,必须将其设置为“ screen”或它的派生版本。
...他们还强调必须。
该TMUX维基继续进一步澄清和解答...
在tmux中,TERM必须是“ screen”,“ tmux”或类似名称(例如“ tmux-256color”)。不要在没有的地方报告问题!
是否有需要知道它们正在屏幕上运行的程序?
是的。除非使用正确的值,否则许多程序(例如)tput
在screen
(或tmux
)中运行时将无法正确显示TERM
。
什么是TERM?它有什么作用?
环境变量TERM告诉应用程序要从terminfo(5)数据库读取的终端描述的名称。每个描述都包含许多命名功能,这些功能告诉应用程序发送什么来控制终端。例如,“ cup”功能包含用于向上移动光标的转义序列。
TERM必须为应用程序在其中运行的终端指向正确的描述,这一点很重要-如果没有,则应用程序可能行为不当。
infocmp(1)命令显示终端描述的内容,而tic(1)命令从文件构建并安装描述(通常两者都需要-x标志)。
调用在kitty xterm-kitty中运行的屏幕会不会有问题?
不一定,只要TERM
正确设置了运行屏幕中的值(即TERM=screen-256color
),并且有有效的terminfo字符串可以知道该值screen
或tmux
知道如何处理。
其他衍生工具(在我的计算机上)是:
/usr/share/terminfo/s/screen
/usr/share/terminfo/s/screen-16color
/usr/share/terminfo/s/screen-256color
/usr/share/terminfo/s/screen.Eterm
/usr/share/terminfo/s/screen.gnome
/usr/share/terminfo/s/screen.konsole
/usr/share/terminfo/s/screen.linux
/usr/share/terminfo/s/screen.mlterm
/usr/share/terminfo/s/screen.mrxvt
/usr/share/terminfo/s/screen.rxvt
/usr/share/terminfo/s/screen.teraterm
/usr/share/terminfo/s/screen.vte
/usr/share/terminfo/s/screen.xterm-r6
/usr/share/terminfo/s/screen.xterm-new
/usr/share/terminfo/s/screen.xterm-xfree86
一旦TERM
设定,就可以运行infocmp
。这将报告该值是否存在有效的terminfo。其他测试可以验证基本的terminfo功能,例如:
for terminfos in $(find /usr/share/terminfo/s -type f -name 'screen*' -printf '%f\n' -o -name 'tmux*' -printf '%f\n'); do export TERM=$terminfos; printf "%s: %sthis is foreground color 10 %sitalics%s and now all attributes are turned off\n" "$terminfos" "$(tput setaf 10)" "$(tput sitm)" "$(tput sgr0)"; done
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句