我试图将backward-kill-line绑定到Ctrl-Backspace。以下结合工作:
(global-set-key (kbd "C-\d") 'backward-kill-line) ; emacs-w32
(global-set-key (kbd "\b") 'backward-kill-line) ; xterm
但是,当我从Windows登录ssh时,我通常会使用Mintty。 Bash报告的Ctrl-v序列是' \ 037'但是emacs并没有认识到这一点。相反,每当我在Mintty术语上运行emacs时按Ctrl-Backspace,以下字符将被发送到缓冲区:&#39 ;; 5u'。
有没有办法告诉emacs使用&#39 ;; 5u'作为键绑定?指定(kbd&#34 ;; 5u")不会起作用,因为emacs需要单个字符。
答案 0 :(得分:0)
让Emacs为您提供帮助,输入C-h k
和C-v
,当Ctrl + numPlus
执行此操作时,Emacs会显示xterm
的内容:
M-O 5 k is undefined
我将其翻译成
(global-set-key (kbd "M-O 5 k") 'end-of-line)
并且工作正常!
更新使用我的expect
脚本从按下组合键时获得的终端获取字节序列:http://sourceforge.net/u/gavenkoa/utils/ci/default/tree/misc/keyseq.exp
如果您使用mintty
,我会检查文档:https://code.google.com/p/mintty/wiki/Tips,您的密钥代码序列与其他示例非常相似,所以我相信:
(global-set-key (kbd "\e[1;5u") 'end-of-line)
为你工作。
检查(info "(elisp)Reading Input)
。
更新2 您已陷入终端的Ctrl+Backspace
问题,请自行调查信息:https://www.google.com.ua/search?q=ctrl+backspace+terminal
我记得几年前我有同样的问题。 Ctrl+Backspace
在终端仿真器中生成与Ctrl-H
相同的字节序列的主要问题。出于这个原因,我训练使用ESC Backspace
向后删除单词。我从未深入研究终端仿真标准和实现代码,以了解是否有可能在mintty
中为C-Backspace
生成不同的代码序列((