如何修复一些tmux的东西(屏幕而不是xterm;功能键)?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何修复一些tmux的东西(屏幕而不是xterm;功能键)?相关的知识,希望对你有一定的参考价值。

为什么tmux将终端从xterm更改为屏幕,如何在emacs中修复生成的文本颜色变化?我认为最简单的方法是防止它首先改为屏幕。

我可以使用TERM=xterm emacs file.ext暂时执行此操作,但这只是一种无法解决问题根源的解决方法。

此外,使用tmux时,功能键在emacs中不再起作用。而不是F3和F4是宏快捷键,它们只是像在shell中一样打印波浪号。这似乎与上面提到的xterm / screen无关。这里发生了什么,以及如何解决这个问题?

答案

tmuxTERM设置为screen,因为终端描述仅限于tmux知道如何使用的东西。与screen一样,tmux将特征从外部终端描述转换为内部。

如果特殊键(功能键,光标键等)在终端描述中没有完全匹配,tmux将忽略它。

PuTTY的默认配置为F1-F4发送不同的转义序列。 PuTTY发送的序列不在xterm的终端描述中。

这是两者的比较(作为CSV文件,但足够可读):

NAME,putty,xterm
kf1,E[11~,EOP
kf2,E[12~,EOQ
kf3,E[13~,EOR
kf4,E[14~,EOS
kf5,E[15~,E[15~
kf6,E[17~,E[17~
kf7,E[18~,E[18~
kf8,E[19~,E[19~
kf9,E[20~,E[20~
kf10,E[21~,E[21~
kf11,E[23~,E[23~
kf12,E[24~,E[24~
kf13,E[25~,E[1;2P
kf14,E[26~,E[1;2Q
kf15,E[28~,E[1;2R
kf16,E[29~,E[1;2S
kf17,E[31~,E[15;2~
kf18,E[32~,E[17;2~
kf19,E[33~,E[18;2~
kf20,E[34~,E[19;2~

你很难让PuTTY发送F13-F20,但使用PuTTY和tmux与TERM=xterm肯定会遇到麻烦。

关于颜色,同样的问题适用。屏幕终端描述告诉应用程序终端可以支持8种颜色,并告诉应用程序如何显示这8种颜色。如果您的外部终端可以做更多,那么tmux和屏幕会隐藏它。

转换并不完美。 GNU screen有一个功能,它寻找相应的screen.$TERM终端描述(即,将外部TERM值连接到screen)。 tmux不这样做:它对xterm做出假设。但是腻子不是xterm ......

ncurses有几个用于终端描述的连接终端名称,但没有人建议tmux自动使用它们。

以上是关于如何修复一些tmux的东西(屏幕而不是xterm;功能键)?的主要内容,如果未能解决你的问题,请参考以下文章

如何仅从屏幕阅读器隐藏页面中的任何元素,而不是普通用户的页面?

tmux安装与使用

【Linux操作】---终端神器tmux

sh 修复tmux-1.9默认路径

tmux:终端复用神器

如何修复 TypeError:order 必须是 str,而不是 int