我想有在Emacs触发与相关标准的行为的能力M-x command RET在字符模式上的ANSI长期缓冲区.
我实际上曾经有过这个功能,但由于某些原因它在最近几天就消失了,即使我还没有升级Emacs(虽然我可能无意中修改了我的init文件)
此外,我有以下钩子,用于工作(在窗口之间切换),但它不再.
(global-set-key (kbd "M-J") 'windmove-left) ; move to left window
(global-set-key (kbd "M-L") 'windmove-right) ; move " "
(global-set-key (kbd "M-I") 'windmove-up) ; move " "
(global-set-key (kbd "M-K") 'windmove-down) ; move " "
(add-hook 'term-mode-hook
(lambda()
(define-key term-raw-map (kbd "M-J") 'windmove-left)
(define-key term-raw-map (kbd "M-L") 'windmove-right)
(define-key term-raw-map (kbd "M-I") 'windmove-up)
(define-key term-raw-map (kbd "M-K") 'windmove-down)
(define-key term-raw-map (kbd "M-F") 'toggle-maximize-buffer)
))
Run Code Online (Sandbox Code Playgroud)
如果我(lookup-key term-raw-map (read-kbd-macro "\C-x")) 在打开任何ansi-term 之前进行评估,我会得到:term-send-raw,但如果我在打开一个ansi-term 后评估它,我得到:
(keymap #^[nil nil keymap
#^^[3 0 pop-global-mark nil list-buffers term-send-raw list-directory eval-last-sexp find-file nil nil indent-rigidly ...] #^^[1 0 #^^[2 0
#^^[3 0 pop-global-mark nil list-buffers term-send-raw list-directory eval-last-sexp find-file nil nil indent-rigidly ...] nil nil nil nil nil nil nil nil nil ...] nil nil nil nil nil nil nil nil nil ...] nil nil nil nil nil nil nil ...] (67108912 . text-scale-adjust) (67108925 . text-scale-adjust) (67108909 . text-scale-adjust) (67108907 . text-scale-adjust) (67108896 . pop-global-mark) (C-left . previous-buffer) (left . previous-buffer) (C-right . next-buffer) (right . next-buffer))
Run Code Online (Sandbox Code Playgroud)
这是预期的行为吗?
我用这样的设置:
(define-key term-raw-map (kbd "M-x") 'nil)
Run Code Online (Sandbox Code Playgroud)
然后M-x工作在term-char-mode照常进行.如果对某些函数使用全局键绑定,请将'nil相同的键绑定放入term-raw-map.