I'm trying to put in a feature that I miss from Eclipse, where Alt+[Up/Down] transposes the lines up or down, but can not for the life of me figure out how to assign to these keys properly. I am using it in -nw
mode (so just in a shell window), and typically run in a screen session.
使用全局键绑定,我可以让它与字母组合一起使用,例如(kbd "M-m")
,但是我尝试过的方向键组合只会给我一条没有意义的消息,我总是得到:
"ESC <up> is undefined"
我尝试过的:
(global-set-key (kbd "M-<up>") 'transpose-line-up)
(global-set-key (kbd "<escape>-<up>") 'transpose-line-up)
(global-set-key [M-up] 'transpose-line-up)
(global-set-key [\e \M-O A] 'transpose-line-up)
And C-h c just returns:
ESC <up> (translated from ESC M-O A) is undefined
None of these work, either using ESC or Alt.
Any idea how I can make this work? I would prefer to have these as Alt+[Up/Down] just because that is what I am used to.
Edit
来自评论:
感谢您的建议,但结果都是一样的。
Emacs 有一个复杂机制处理各种终端类型上功能键和修饰符编码的变化。它并非在所有情况下都能开箱即用。以下设置应该适用于您的终端:
(define-key input-decode-map "\e\eOA" [(meta up)])
(define-key input-decode-map "\e\eOB" [(meta down)])
(global-set-key [(meta up)] 'transpose-line-up)
(global-set-key [(meta down)] 'transpose-line-down)
你应该能够使用(kbd "<M-up>")
and (kbd "<M-down>")
代替[(meta up)]
and [(meta down)]
,只要你完成了告诉 Emacs 的步骤(通过input-decode-map
)有关您的终端用于对这些组合键进行编码的转义序列。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)