我曾问一个关于在Emacs在终端按Ctrl箭头键绑定的问题:
Emacs的Ctrl键修饰词并不在控制台中工作
并被告知,Linux的终端仿真器不处理这种组合。 我设法创建一个文件loadkeys
命令,用于处理这些键:
control keycode 105 = F100
string F100 = "\033[[left"
control keycode 106 = F101
string F101 = "\033[[right"
然后装载它从根:
#loadkeys ./funcskeys
每一次当我点击控制台Ctrl键向右或Ctrl-离开,我得到“正确”或“左”打印。 现在我需要在Emacs处理此。 据我从这个问题的理解:
在Emacs 23.1.1结合M- <向上> / M- <向下>
一定要做,使用input-decode-map
功能。 但我无法使它工作。 PLZ,帮助。
更改“funcskeys”文件稍微产生以下转义序列:
control keycode 105 = F100
string F100 = "\033[1;5D"
control keycode 106 = F101
string F101 = "\033[1;5C"
然后将下列行添加到您.emacs
文件:
(define-key input-decode-map "\e[1;5C" [(control right)])
(define-key input-decode-map "\e[1;5D" [(control left)])
运行后loadkeys
和重新启动的Emacs,CTRL +左键和CTRL +右应该工作。 您可以通过键入验证这一点:
章K C的右
和
章K C的左
为了实际结合这些按键的命令,如forward-word
,你可能有以下行添加到您.emacs
文件,以及:
(global-set-key [(control right)] 'forward-word)
(global-set-key [(control left)] 'backward-word)
请注意,这整个的做法专门不仅使组合键CTRL +左键和CTRL +正确的工作。 它不会例如使ALT +左 / ALT +正确的工作,或涉及CTRL字符任何其他的按键组合。