在GNU屏幕中,我想更改默认命令绑定到Alt-s(通过调整.screenrc)而不是默认的Ca,原因是我使用emacs因此GNU屏幕绑定Ca键,发送"Ca"到emacs变成乏味(如@Nils所说,发送"Ca"我应该键入"Ca a"),以及bash shell中的"Ca",我可以将转义更改为C-但是其中一些已经映射到emacs和其他组合并不像ALT-s那么容易.如果有人已经完成了ALT键映射,请告诉我.
从我的阅读man screen
看来,似乎唯一screen
可以用于命令绑定的元字符是CTRL
:
escape xy Set the command character to x and the character generating a literal command character (by triggering the "meta" command) to y (similar to the -e option). Each argument is either a single character, a two-character sequence of the form "^x" (meaning "C-x"), a backslash followed by an octal number (specifying the ASCII code of the character), or a backslash followed by a second character, such as "\^" or "\\". The default is "^Aa".
如果有一些你没有在emacs中使用的映射,即使它不方便C-|
,那么你可以使用你的终端输入管理器重新映射ALT-X
到那个,让你使用ALT
绑定代替.但这有点像哈希.
可以使用寄存器和bindkey命令解决转义命令限制.把它放在.screenrc中:
# reset escape key to the default escape ^Aa # auxiliary register register S ^A # Alt + x produces ^A and acts as an escape key bindkey "^[x" process S ## Alt + space produces ^A and acts as an escape key # bindkey "^[ " process S
见http://adb.cba.pl/gnu-screen-tips-page-my.html#howto-alt-key-as-escape
要使Alt+ X为命令和free Ca的默认前缀,请将以下行添加到.screenrc:
escape ^|| bindkey "^[x" command
作为副作用C- | 也将是命令前缀.如果您也需要此密钥,请修复"escape ^ ||" 因此.
我也是Emacs和屏幕用户.虽然我很少在终端中使用Emacs - 因此在屏幕会话中 - 我也不想放弃Ca(它使用Emacs键绑定).我的解决方案是使用Cj作为屏幕的前缀键,我愿意牺牲.在Emacs编程模式中,它绑定到(newline-and-indent),我也绑定到RET,所以我真的不会错过它.
顺便说一句:我知道这是一个建议而不是答案,但我觉得这很有价值,可以发布.
屏幕没有alt绑定的任何简写语法,但你可以直接给它八进制代码.例如,在我的机器上,Alt-x有十六进制代码F8,或者是370八进制,所以放置
逃脱\ 370x
在我的screenrc中将转义码更改为alt-X
在Linux上测试并使用屏幕4.00.03.
您可能必须更改转义,因为我认为这可能取决于您的语言和代码集等等:我如何找到我的转义码是什么类型
$ echo -n ^QM-x | perl -ne 'printf "%lo\n", ord($_)'
^ Q是readline的quoted-insert命令(它直接插入你输入的内容而不试图解释它),Mx是文字Alt-X.