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

时间:2018-02-28 16:09:24

标签: emacs colors keyboard-shortcuts tmux xterm

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

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

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

1 个答案:

答案 0 :(得分:1)

tmux TERM设置为 screen ,因为该终端说明仅限于tmux知道如何跟...共事。与 screen 一样, tmux 会将外部终端描述中的要素转换为内部。

如果特殊键(功能键,光标键等)在终端说明中没有完全匹配, tmux 忽略< / em> 它。

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 做出假设。但是PuTTY不是 xterm ......

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