term-mode
に適切にバインドしようとしています。プロンプト。私はprelude
パッケージを使用しています。このコードに加えて、他の人たちがここや他の場所に置かれています。Emacs 24.xとPreludeでterm-modeのterm-send-homeにキーをバインドできない
これはこれで最後に繰り返されるterm-mode
コードです。私はterm-mode-map
への結合および/またはterm-raw-map
でそれを倍増追加してみてください
(require 'term)
(require 'multi-term)
(defcustom term-unbind-key-list
'("C-z" "C-x" "C-c" "C-h" "C-y" "<ESC>")
"The key list that will need to be unbind."
:type 'list
:group 'multi-term)
(defcustom term-bind-key-alist
'(("C-c C-c" . term-interrupt-subjob)
("C-c C-j" . term-line-mode)
("C-c C-k" . term-char-mode)
("C-m" . term-send-raw)
("C-p" . previous-line)
("C-n" . next-line)
("C-s" . isearch-forward)
("C-r" . isearch-backward)
("M-f" . term-send-forward-word)
("M-b" . term-send-backward-word)
("M-o" . term-send-backspace)
("M-p" . term-send-up)
("M-n" . term-send-down)
("M-M" . term-send-forward-kill-word)
("M-N" . term-send-backward-kill-word)
("M-r" . term-send-reverse-search-history)
("M-," . term-send-input)
("M-." . comint-dynamic-complete))
"The key alist that will need to be bind.
If you do not like default setup, modify it, with (KEY . COMMAND) format."
:type 'alist
:group 'multi-term)
(add-hook 'term-mode-hook
(lambda()
(add-to-list 'term-bind-key-alist '("A-M-[" . multi-term-prev))
(add-to-list 'term-bind-key-alist '("A-M-]" . multi-term-next))))
(add-hook 'term-mode-hook
(lambda()
(define-key term-raw-map (kbd "C-y") 'term-paste)
(define-key term-raw-map (kbd "C-a") 'term-send-home)))
(define-key term-mode-map (kbd "C-a") 'term-send-home)
たびに、私はそれがリロードするeval-buffer
。 C-a
のキーバインドを照会すると、prelude
パッケージのサブコンポーネントであるcrux
ライブラリの一部である、常にcrux-beginning-of-line
が参照されます。それはグローバルマイナーモードですか、私は何とかそれを殺す必要がありますか?それはterm-unbind-key-list
のバインディングで始まり、この解決策と他のものと私は何を試しても、常にC-a
が要点に送られます。関数。
非常に奥行きの答えに
は、ここに私の古い
multi-term
設定です。他の人の〜.el〜からのコピーパスタは時々私が仮定したように逆火することができます。仕事の週が終わったので、私はこれを試して、それがうまくいれば正しいとマークします。ごめんなさい。 – songei2fこれは固い助けでしたが、preludeで定義されている 'crux'バインディングを無効にする必要があります。なぜならこれはうまくいかないからです。 https://github.com/bbatsov/prelude/issues/1009 – songei2f