Electric-pair-mode not detected for some characters with German keyboard layout
因此,我试图掌握在Mac Os 10.10.4上运行的Emacs 24.5。
我有一个德语键盘,并决定将alt-键保留为Meta。 由于我仍然必须将其用于某些基本字符,例如[,| | 和}(类似于alt-5,alt-6和alt-9),它决定采用此解决方案:
1 2 3 4 | (global-set-key"\\M-5" (lambda () (interactive) (insert"["))) (global-set-key"\\M-6" (lambda () (interactive) (insert"]"))) (global-set-key"\\M-7" (lambda () (interactive) (insert"|"))) ... |
当我使用
然后,通过使用以下代码交换密钥,我尝试了另一种方法:
1 2 3 4 5 6 | (defun redefine-key (key char) (define-key function-key-map key char) (global-unset-key key)) (redefine-key"\\M-5""[") (redefine-key"\\M-6""]") ... |
有趣的是,对特征现在适用于方括号[],但不适用于大括号{}。 尽管德语键盘上的'键甚至与alt键无关(可以通过Shift键访问),但是它根本不起作用。 自动配对包的结果相同,顺便说一句。
拜托,有人吗? 非常感谢!
这就是您的问题:调用
1 2 3 4 5 6 7 8 | (global-set-key"\\M-5" (lambda (&optional N) (interactive"P") (insert-as-self ?\\[ N))) (global-set-key"\\M-6" (lambda (&optional N) (interactive"P") (insert-as-self ?\\] N))) (global-set-key"\\M-7" (lambda (&optional N) (interactive"P") (insert-as-self ?\\| N))) (defun insert-as-self (CHAR N) (let ((last-command-event CHAR) (repeat (if N N 1))) (self-insert-command repeat))) |
在这里,我们在调用
为了使花括号和引号生效,您必须做两件事:首先,将各自的
1 | (setq electric-pair-pairs '((?\' . ?\') (?\" . ?\") (?\\{ . ?\\}))) – |