Eva*_*oll 8 gnu-screen tmux environment-variables kitty
为何tmux举报
$TERM=screen-256color
Run Code Online (Sandbox Code Playgroud)
通常kitty报告
$TERM=xterm-kitty
Run Code Online (Sandbox Code Playgroud)
如果我跑tmux进去应该使用哪个kitty?显然kitty提供了高级功能,并且它的报告是有意义的xterm-kitty。为什么屏幕报告有screen-256程序需要知道它们正在屏幕中运行?在 kitty 中调用 screen 运行会有问题吗xterm-kitty?
如果我在 kitty 内运行 tmux,我应该使用哪个?
\n\n运行时tmux,您必须使用TERM=screen、TERM=tmux或其中一个导数,例如TERM=screen-256color或TERM=tmux-256color。
男人tmux(1)说...
\n\n\n对于在 tmux 内运行的所有程序,必须将 TERM 环境变量设置为 \xe2\x80\x9cscreen\xe2\x80\x9d。新窗口将自动将 \xe2\x80\x9cTERM=screen\xe2\x80\x9d 添加到其环境中,但必须注意不要在 shell 启动文件中重置它。
\n
..并进一步澄清...
\n\n\n\n\n设置在此会话中创建的新窗口的默认终端 - TERM 环境变量的默认值。为了使 tmux 正常工作,必须将其设置为 \xe2\x80\x98screen\xe2\x80\x99 或其派生项。
\n
……他们还强调必须。
\n\ntmux wiki继续提供额外的说明和答案......
\n\n\n\n\ntmux 内部的 TERM 必须是“screen”、“tmux”或类似内容(例如“tmux-256color”)。\n 不要费心报告不存在的问题!
\n
是否有程序需要知道它们正在屏幕中运行?
\n\n是的。许多程序(例如)在( 或)tput中运行时将无法正确显示,除非它们使用正确的值。screentmuxTERM
\n\n\n什么是 TERM?它有什么作用?
\n\n环境变量 TERM 告诉应用程序要从 terminfo(5) 数据库读取的终端描述的名称。每个描述都包含许多命名功能,这些功能告诉应用程序发送什么内容来控制终端。例如,“cup”功能包含用于向上移动光标的转义序列。
\n\n重要的是 TERM 指向应用程序正在运行的终端的正确描述 - 如果不正确,应用程序可能会出现错误。
\n\ninfocmp(1) 命令显示终端描述的内容,tic(1) 命令从文件构建并安装描述(两者通常都需要 -x 标志)。
\n
在kitty xterm-kitty中调用screen运行会有问题吗?
\n\n不一定,只要TERM运行屏幕中的值设置正确(即TERM=screen-256color)并且有有效的 terminfo 字符串screen或tmux知道如何处理。
其他衍生品(在我的机器上)是:
\n\n/usr/share/terminfo/s/screen\n/usr/share/terminfo/s/screen-16color\n/usr/share/terminfo/s/screen-256color\n/usr/share/terminfo/s/screen.Eterm\n/usr/share/terminfo/s/screen.gnome\n/usr/share/terminfo/s/screen.konsole\n/usr/share/terminfo/s/screen.linux\n/usr/share/terminfo/s/screen.mlterm\n/usr/share/terminfo/s/screen.mrxvt\n/usr/share/terminfo/s/screen.rxvt\n/usr/share/terminfo/s/screen.teraterm\n/usr/share/terminfo/s/screen.vte\n/usr/share/terminfo/s/screen.xterm-r6\n/usr/share/terminfo/s/screen.xterm-new\n/usr/share/terminfo/s/screen.xterm-xfree86\nRun Code Online (Sandbox Code Playgroud)\n\n设置完成后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
| 归档时间: |
|
| 查看次数: |
7968 次 |
| 最近记录: |