术语“焦点”是指当前哪个终端(或窗口)正在接受键盘和鼠标输入事件。只有一个人可以专注。有一些协议可以确定如何在图形环境中获得和失去焦点,这对探索无济于事。
从描述中(在重新获得焦点时,另请参阅Tmux当前窗格指示器),看来iTerm2实现了此xterm
功能:
聚焦/聚焦
由于FocusIn / FocusOut使用不同的协议,因此可以与任何鼠标事件结合使用。设置后,它将导致xterm在终端获得焦点时发送CSI I,而在终端失去焦点时发送CSIO。
它由私有模式1004启用(已在2007年xterm中添加,补丁#224):
CSI ? Pm h
DEC Private Mode Set (DECSET).
Ps = 1 0 0 4 -> Send FocusIn/FocusOut events.
并且可能与此补丁程序有关:Vim-添加对焦点报告模式的支持(DECSET / DECRST 1004)在xterm兼容终端上起作用,这将“ xterm”鼠标功能的所有行为等同于一种设置:
xterm兼容终端和tmux支持/ *焦点报告。* /
所以...您可以通过告诉vim您的终端不使用xterm鼠标协议来禁用该功能。引用的补丁告诉vim打开FocusIn / FocusOut功能(通常应该关闭),如果它的逻辑上有缺陷,退出vim后可能会使该功能保持启用状态。
尽管vim是启用该模式的最可能原因,但其他程序(或脚本)也可能将其打开。正如另一个答案中所建议的那样,您可以通过使用script
程序将输出收集到终端中(生成typescript
文件)来缩小范围。分析可能很耗时(并且由于该站点似乎不支持附件,因此似乎不适合进行详细讨论)。unmap
为此,我通常使用将打字稿文件转换为可读形式。