在GNU屏幕中,我想更改默认命令绑定到Alt-s(通过调整.screenrc)而不是默认的Ca,原因是我使用emacs因此GNU屏幕绑定了Ca键,发送“Ca”到emacs变得单调乏味(正如@Nils所说,发送“Ca”我应该键入“Ca a”),以及bash shell中的“Ca”,我可以将转义更改为C-但是其中一些已经映射在emacs和其他组合中并不像ALT-s那么容易。如果有人已经完成了ALT键映射,请告诉我。
答案 0 :(得分:9)
从我对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
绑定。但这有点像黑客。
答案 1 :(得分:8)
可以使用寄存器和:bindkey 命令解决:escape 命令限制。只需将其放在 .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
答案 2 :(得分:8)
要使 Alt + X 成为命令和免费C-a的默认前缀,请将以下行添加到.screenrc:
escape ^||
bindkey "^[x" command
副作用C- |也将是命令前缀。如果您也需要此密钥,请修复“escape ^ ||”相应
答案 3 :(得分:7)
我也是Emacs和屏幕用户。虽然我很少在终端中使用Emacs - 因此在屏幕会话中 - 我也不想放弃shell的C-a(它使用Emacs键绑定)。我的解决方案是使用C-j作为屏幕的前缀键,我愿意牺牲。在Emacs编程模式中,它绑定到(newline-and-indent),我也绑定到RET,所以我真的不要错过它。
顺便说一下:我知道这是一个建议而不是一个答案,但我觉得这很有价值,但仍然可以发布。
答案 4 :(得分:6)
屏幕没有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命令(它直接插入你输入的内容而不试图解释它),而M-x是一个文字的Alt-X。
答案 5 :(得分:1)
不回答你的问题,但C-a a确实向窗口发送了C-a,不是吗?
答案 6 :(得分:0)
此处有emacs用户。
我找到的最佳解决方案是〜/ .screenrc文件,其中包含以下内容:
# C-a :source .screenrc
escape ^gg
答案 7 :(得分:0)
我在.screenrc
中经历了多年的事情:
escape ^Zz
现在对我来说,它在肌肉记忆中是硬连接的。
以某种方式,我最终不得不与其他人的配置共享一个屏幕,现在我一直一直在停止进程(bash ^Z
)……不好笑...