我paredit-forward
和paredit-backward
绑定了>和<分别
这意味着如果我想输入“something-> something-else”,我会输入“something-”,将光标传送到屏幕的另一部分,然后输入“something-else”。
我的解决方案是使用C-.
和C-,
来插入它们。
我试过这个:
(define-key key-translation-map (kbd "C-.") (kbd ">"))
(define-key key-translation-map (kbd "C-,") (kbd "<"))
上一个命令导致另一个paredit-forward键绑定,因为我正在创建一个keybind链,如下所示:
C-. → > → paredit-forward
而不是
C-. → > → the "greater than" key is inserted into whatever text box I am in.
这就是我要找的。 p>
感谢。
答案 0 :(得分:3)
键绑定到命令。命令通常是交互式功能,但也可以是键盘宏(以字符串或矢量格式)。执行键盘宏会导致Emacs执行宏的键序列将要完成的操作。
(kbd ">")
会产生键盘宏">"
;所以你告诉Emacs,当输入C-.
时,它应该完成输入>
时所做的事情。
通常(在大多数缓冲区中)>
将绑定到self-insert-command
,因此键盘宏(kbd ">")
将插入>
字符,但您已修改该绑定。
我相信您希望将C-.
绑定到插入>
字符的命令。这样的命令是:
(lambda () (interactive) (insert ">"))
答案 1 :(得分:1)
你不需要将特殊键(例如C-,
)绑定到插入给定字符的特殊命令(例如(lambda () (interactive) (insert ">"))
)(例如{ {1}})。
Emacs已经提供了常规键,绑定到常规命令,插入任何字符:键 {{1 }} 强>
要插入与键盘键对应的任何字符(以及其他字符),您只需要点击>
,然后点击该键。< / p>
所以答案就是这样做:
C-q
以插入C-q
C-q >
以插入>