首先,我知道我可以使用Alt+ 1(到 9 和 0)来合成 Midnight Commander 中的相应功能键(F1到F10)。它曾多次帮助我,但默认情况下我仍然按下实际的功能键直观。
要点:我正在尝试tmux
使用 PuTTY 在会话(有时是窗口,有时是窗格)内同时运行 Vim 和 Midnight Commander。
因此默认情况下我有以下 PuTTY 配置:
使用ESC[n~
映射
map <F1> :tab help<CR>
现在在 Vim 中映射 (以及nmap
和imap
)时,问题F1在于它会产生 (切换大小写) 的效果~。事实上,如果我在 shell 中按下,结果就是波浪符号 ( F1) ,F5~
沿着带铃声。不过,使用此设置,功能键在 Midnight Commander 中工作正常。
除了我遇到的问题之外,上述设置还有一个奇怪之处F1:我还在 Vim 中“映射”了F5( set pastetoggle=<F5>
)。奇怪的是那像魔法一样工作,即使F5外壳上的键给出了~
像F1等等一样的效果。
笔记:当在 之外运行 Vim 时tmux
, 的默认绑定(和我的覆盖)F1可以正常工作!
使用“Linux”映射
因此,我自然而然地尝试使用上面对话框中的“Linux”设置。因此,当我按下时,F1Vim 会在行末进入插入模式(效果A)。Midnight Commander 无法识别此设置下的任何功能键。果然,shell 上F1出现了A
一个铃声(F2aB
等等)。
我在这里遗漏了什么?如何才能获得统一的行为,让 Midnight Commander 和 Vim 都能识别功能键?
附加信息:
远程系统是 Ubuntu 14.04 LANG=en_US.UTF-8
。
TERM
设置为会话TERM=xterm
之外tmux
并且TERM=screen
从窗格或窗口内部查看时。
我不使用:
set-option -g default-terminal "screen-256color"
覆盖里面的终端类型tmux
。
答案1
问题在于TERM=xterm
外部tmux
。不与终端描述匹配的PuTTY的配置xterm
,不匹配的部分将输入到screen
或tmux
(任您选择)。
例如,参见 ncurses FAQ为什么不直接将 TERM 设置为“xterm”?。当然,建议设置
TERM=putty
使用快速检查tack
表明此组合(TERM=putty
, tmux
)适用于 Ubuntu 14.04(您应该已经安装了ncurses-term
包含该组合的软件包)。