Wal*_*alf 5 terminal tmux putty
在我的普通终端中,F1-F4键生成^[[11~^[[12~^[[13~^[[14~,但在 tmux 中我得到^[OP^[OQ^[OR^[OS. 我希望它们在 tmux 中的行为相同,这样我就不会为 tmux 中的程序绑定带来麻烦。我没有打开 PuTTY 的Xterm R6选项。
我使用putty-256colorputty 和 tmux 中的终端类型来避免其他键不匹配,但我仍然需要重新映射我的箭头键。
配置是曾是:
set -g default-terminal "putty-256color"
set -g terminal-overrides "putty*:smkx@:rmkx@:kLFT5=\eOD:kRIT5=\eOC:kUP5=\eOA:kDN5=\eOB:kf1=\e[11~:kf2=\e[12~:kf3=\e[13~:kf4=\e[14~"
Run Code Online (Sandbox Code Playgroud)
我的配置的其余部分是不相关的装饰性内容。您可以看到我尝试将 4 个功能键重新映射回原来的状态,但还没有成功。
我觉得我错过了一些基本的东西,为什么我的密钥不能对于 tmux 内部和外部的每个密钥保持相同,除了前缀之外,这样这些问题就不会发生?
编辑
我的问题仍然存在,但我遗漏了一些基本的东西:指的是tmux内的default-terminal终端类型,但指的是我正在连接的术语类型,即tmux之外。(是的,我觉得自己很蠢。)terminal-overrides
我的配置现在是这样的:
set -g default-terminal "screen-256color"
set -g terminal-overrides "putty*:kLFT5=\eOD:kRIT5=\eOC:kUP5=\eOA:kDN5=\eOB:kf1=\e[11~:kf2=\e[12~:kf3=\e[13~:kf4=\e[14~:smkx@:rmkx@"
Run Code Online (Sandbox Code Playgroud)
F1-F4仍然给我^[[11~^[[12~^[[13~^[[14~tmux 外部和^[OP^[OQ^[OR^[OS内部。
手册页不清楚,但阅读源代码有帮助:
\n\ninput_key\n /*\n * 该文件的命名相当具有误导性,它包含的代码采用\n * 键代码并将其转换为适合发送到在窗格中运行的\n * 应用程序的代码(类似于 input. c 在另一个\n * 方向上执行输出)。\n */\n\n\n
您的 shell 是注释所指的应用程序。
\n\n用于terminal-overrides修改读取的终端描述tmux,以允许您使用与终端描述不匹配的配置(外部“真实”终端):
tmux将键转换为它自己的一组转义序列(与 中的转义序列匹配screen,但它添加了选项xterm-keys)。顶部的评论window.c总结了这一点:
* A pane has two buffers attached, these are filled and emptied by the main\n * server poll loop. Output data is received from pty\'s in screen format,\n * translated and returned as a series of escape sequences and strings via\n * input_parse (in input.c). Input data is received as key codes and written\n * directly via input_key.\nRun Code Online (Sandbox Code Playgroud)\n\n手册页说
\n\n\n\n\n\n
default-terminal终端
\n 设置此会话中创建的新窗口的默认终端 -TERM环境变量的默认值。为了tmux正常工作,必须将其设置为\xe2\x80\x98screen\xe2\x80\x99、\xe2\x80\x98tmux\xe2\x80\x99或它们的衍生物。
限制的原因是无法按照input-keys.c您想要的方式自定义数据。
| 归档时间: |
|
| 查看次数: |
3634 次 |
| 最近记录: |