4

Emacsで、ansi-termバッファーM-x command RET文字モードに関連する標準の動作をトリガーする機能が必要です。

私は実際にこの機能を持っていましたが、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) 
    ))

アップデート:

アンチタームを開く(lookup-key term-raw-map (read-kbd-macro "\C-x")) に評価すると、次のようになります。しかし、アンチタームを開いたterm-send-rawに評価すると、次のようになります。

(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))

これは予想される動作ですか?

4

1 に答える 1

6

私はそのような設定を使用します:

(define-key term-raw-map (kbd "M-x") 'nil)

その後、通常どおりにM-x機能します。term-char-mode一部の関数にグローバルキーバインドを使用する場合は'nil、同じキーバインドをに入れてくださいterm-raw-map

于 2013-01-23T23:51:38.917 に答える