emacs (osx + iterm2) define-key input-decode-map 已弃用?
emacs (osx + iterm2) define-key input-decode-map deprecated?
我有以下用于 iterm2 的定义键 - emacs 使用。
(define-key input-decode-map "\e[1;31" (kbd "C-;"))
(define-key input-decode-map "\e[1;32" (kbd "C-="))
(define-key input-decode-map "\e[1;33" (kbd "C-:"))
升级 emacs 24.5.1 后它停止工作了。
它的正确语法是什么?
编辑
我之前用的是24.3
c-h l 给出
b RET C-a C-n C-n C-n C-n C-x b i n p u t C-g C-x C-f DEL DEL DEL ~ /
. e m a c RET C-d ESC x m a g i t - s t a t u s RET g C-a C-n C-n C-n
C-n C-n C-n C-n C-n TAB TAB TAB TAB TAB TAB k y g C-a C-n C-n C-p C-p
C-p C-n C-p C-a C-n C-n C-x o C-c g s m a r t SPC p a r e n s C-g C-g
C-n C-n C-n C-x ESC p s m a r t SPC p a r e n RET C-a C-n C-x d RET g
C-a C-n C-n C-n C-p C-p C-s s m a r t - p a C-a C-s C-a C-n C-n C-a
C-x ESC p s m a r t C-n C-n C-n C-g RET g ^ R R O O T _ o r i g RET
ESC ! s h e l l RET C-g ESC ! e C-g ESC x s h e l l RET q RET q u i t
RET C-d ESC x e s h e l l RET l s RET c p SPC DEL DEL DEL l n SPC - s
SPC g C-a C-k c d SPC . . / b i n RET l l RET l s RET . / s u TAB DEL
h TAB RET f g RET p s SPC DEL DEL DEL DEL DEL n e t t DEL s t a t SPC
- a n o SPC | g r e p SPC 8 0 8 9 RET ESC O A DEL 0 RET C-h l C-g C-x 1 C-x b C-s C-s C-s RET C-h l
我的 emacs 是
#!/bin/sh
which osascript > /dev/null 2>&1 && osascript -e 'tell application "Emacs" to activate'
emacsclient -nw -c "$@"
是因为我调用emacs的方式变了。
我曾经做过emacs -nw
现在我启动 emacs-server 并附加 emacs-client。
它打破了 input-decode-map
https://groups.google.com/forum/#!topic/gnu.emacs.help/ZGu2MNkJGrI
您需要将它们包裹在 defadvice
中,如下所示。
(defadvice terminal-init-xterm (after map-S-up-escape-sequence
activate)
(define-key input-decode-map "\e[1;2A" [S-up])
)
我有以下用于 iterm2 的定义键 - emacs 使用。
(define-key input-decode-map "\e[1;31" (kbd "C-;"))
(define-key input-decode-map "\e[1;32" (kbd "C-="))
(define-key input-decode-map "\e[1;33" (kbd "C-:"))
升级 emacs 24.5.1 后它停止工作了。
它的正确语法是什么?
编辑
我之前用的是24.3
c-h l 给出
b RET C-a C-n C-n C-n C-n C-x b i n p u t C-g C-x C-f DEL DEL DEL ~ / . e m a c RET C-d ESC x m a g i t - s t a t u s RET g C-a C-n C-n C-n C-n C-n C-n C-n C-n TAB TAB TAB TAB TAB TAB k y g C-a C-n C-n C-p C-p C-p C-n C-p C-a C-n C-n C-x o C-c g s m a r t SPC p a r e n s C-g C-g C-n C-n C-n C-x ESC p s m a r t SPC p a r e n RET C-a C-n C-x d RET g C-a C-n C-n C-n C-p C-p C-s s m a r t - p a C-a C-s C-a C-n C-n C-a C-x ESC p s m a r t C-n C-n C-n C-g RET g ^ R R O O T _ o r i g RET ESC ! s h e l l RET C-g ESC ! e C-g ESC x s h e l l RET q RET q u i t RET C-d ESC x e s h e l l RET l s RET c p SPC DEL DEL DEL l n SPC - s SPC g C-a C-k c d SPC . . / b i n RET l l RET l s RET . / s u TAB DEL h TAB RET f g RET p s SPC DEL DEL DEL DEL DEL n e t t DEL s t a t SPC - a n o SPC | g r e p SPC 8 0 8 9 RET ESC O A DEL 0 RET C-h l C-g C-x 1 C-x b C-s C-s C-s RET C-h l
我的 emacs 是
#!/bin/sh
which osascript > /dev/null 2>&1 && osascript -e 'tell application "Emacs" to activate'
emacsclient -nw -c "$@"
是因为我调用emacs的方式变了。
我曾经做过emacs -nw
现在我启动 emacs-server 并附加 emacs-client。
它打破了 input-decode-map
https://groups.google.com/forum/#!topic/gnu.emacs.help/ZGu2MNkJGrI
您需要将它们包裹在 defadvice
中,如下所示。
(defadvice terminal-init-xterm (after map-S-up-escape-sequence
activate)
(define-key input-decode-map "\e[1;2A" [S-up])
)