Я пытаюсь правильно связать C-a
в term-mode
, чтобы перейти к началу текста в командной оболочке, а не к началу Подсказка. Я использую пакет prelude
, в дополнение к этому коду, выбитому из других здесь, на SO и в другом месте.Не удается привязать ключ к term-send-home в режиме term-mode в Emacs 24.x и Prelude
Это моя последняя итерация term-mode
код, играющий с этим.
(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)
Каждый раз, когда я пытаюсь добавлять привязки к term-mode-map
и/или удвоение его в term-raw-map
, я eval-buffer
его перезагрузить. Когда я запрашиваю keybinding для C-a
, он ВСЕГДА ссылается на crux-beginning-of-line
, часть библиотеки crux
, которая является подкомпонентом пакетов prelude
. Это глобальный второстепенный режим, и я должен как-то его убить? Это началось со связывания в term-unbind-key-list
, это решение и другие, и независимо от того, что я пробую C-a
, всегда отправляется в crux. Функция.
Очень в глубине ответа. Копия-макароны от ~ .el ~ других людей могут иметь неприятные последствия, иногда я полагаю. Теперь, когда рабочая неделя закончится, я попробую это и отметю правильно, если она сработает. Сожалею. – songei2f
Оказывается, это была прочная помощь, но я должен отключить привязки 'crux', глобально определенные прелюдией, так как это не сработает. https://github.com/bbatsov/prelude/issues/1009 – songei2f