我在瀏覽創建major mode for Emacs,並與堆棧交換網絡交互的早期階段,我的工作。Emacs的按鍵綁定沒有定製主要模式
在它涉及到幾種主要模式,全部採用一鍵式按鍵綁定類似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")
但不幸的是,這似乎完全沒有影響;緩衝區就像任何其他正常緩衝區一樣簡單地編輯。如果這不是他們的方式,我怎麼能實現單鍵鍵控綁定? (其中,順便說一下,我敢肯定它是。必須有別的東西怎麼回事。)
需要更詳細的....我打開你指的是包,它工作得很好。所有主要的模式綁定都可用(雖然未定義)。 – 2013-02-27 23:58:57
不要用'defun'定義主要模式。使用'定義衍生-mode',負責處理所有的樣板給你,包括殺害局部變量,切換鍵映射,設置主要模式乏,運行鉤等 – lunaryorn 2013-02-28 00:47:53