Я нахожусь на ранней стадии создания major mode for Emacs для просмотра и взаимодействия с сетью обмена стеками.Emacs keybinding не работает в обычном основном режиме
Участие в нем - несколько основных режимов, все с одним ключом, похожим на dired
. Я посмотрел на источник для dired
и экстрагируют то, что я думал, что будет работать:
(defvar stack-network-mode-map
(let ((map (make-keymap)))
(define-key map "n" 'stack-network-next-site)
(define-key map "p" 'stack-network-previous-site)
(define-key map "," 'stack-network-move-site-up)
(define-key map "." 'stack-network-move-site-down)
(define-key map "j" 'stack-network-jump-to-bookmarks)
(define-key map "\C-m" 'stack-network-do-enter-site) ; ret
(define-key map "o" 'stack-network-do-enter-site)
(define-key map "u" 'stack-network-do-profile-summary)
(define-key map "\C-uu" 'stack-network-do-profile-summary-for-user)
(define-key map "i" 'stack-network-do-inbox)
(define-key map "b" 'stack-network-toggle-bookmark)
(define-key map "?" 'stack-network-list-functions) ; [1]
(define-key map "\C-i" 'stack-network-display-details) ; tab
map)
"Keymap for Stack Exchange: Network Browser major mode")
, но, к сожалению, это, кажется, не имеет абсолютно никакого эффекта; буфер просто редактируется так же, как и любой другой обычный буфер. Как я могу добиться одноключевых клавиш, если это не так? (Что, кстати, я уверен, что это так. Здесь должно быть что-то еще.)
Нужно больше деталей .... Я загружаю пакет, на который вы ссылаетесь, и он отлично работает. Все основные привязки режимов доступны (хотя и не определены). –
Не определяйте основные режимы с 'defun'. Используйте 'define-производный-режим', который обрабатывает все шаблоны для вас, в том числе убивает локальные переменные, переключает карту ключей, устанавливает основные моды, запускает крючки и т. Д. – lunaryorn