如何在 GNU 屏幕中禁用键绑定/键绑定?

如何在 GNU 屏幕中禁用键绑定/键绑定?

iTerm2在 Mac 上使用,并自定义了control+control+来发送十六进制0x010x05按下时 - 这使光标在键入或编辑命令时跳转到行的开头和结尾(而不是一次一个单词) - 并且该alt键加上一个箭头使光标一次移动一个单词。

当使用 SSH 时,这在远程 Linux 系统上工作得很好,直到我启动屏幕会话。 +仍然可以正常工作,但是当我尝试使用+时control,我只是在状态区域中收到一条消息:controlscreen

No other window.

我发现文档建议将这些行添加到/etc/screenrc~/.screenrc 将键绑定到下一个和上一个窗口:

bindkey "^[[5D" prev
bindkey "^[[5C" next

我认为解除绑定的语法是使用这一行而不使用命令:

bindkey "^[[5D"
bindkey "^[[5C"

我也尝试过如下:

bindkey "^[[01"
bindkey "^[[05"

这些东西似乎都不起作用。

/etc/screenrc完全不变Ubuntu 16.04,目前没有~/.screenrc文件(即没有非标准干扰)

我如何解除绑定或进一步调试它以找出挂起的位置?

答案1

代码0x01是 Control-A,它是屏幕中的默认命令字符,因此当您执行control+两次时,您将获得默认的操作绑定其他,即其他窗口,因此出现该消息。

您可以更改为不同的命令字符,例如启动屏幕时的 Control-b:

screen -e^Bb

或者你可以输入你的~/.screenrc

escape ^Bb

答案2

您已设置Ctrl+Left来发送字符 ^A (Ctrl+A)。这与Ctrl+发送的字符相同A,^A 是 Screen 按键绑定的默认前缀字符。

bindkey "^[[5D" prev由于两个原因,屏幕配置中的内容毫无用处。首先,这定义了当 Screen 收到此转义序列时会发生什么在前缀字符之后,即在 ^A ​​之后。其次,^[[5D是某些终端发送Ctrl+的内容Left,但您已重新配置终端以发送不同的内容 (^A)。

不要发送Ctrl+ Left^A,而是发送^[[1~or ^[OH(其中^[是转义字符)。同样 make Ctrl+ Rightsend^[4~^[OF代替 ^E。这些是通常由HomeEnd键发送的转义序列。

相关内容