2010-02-07 48 views

回答

6

define-derived-mode本身創建一個名爲MODE-map的鍵盤映射,其中MODE是您剛定義的鍵盤映射的名稱。我不確定什麼derive-mode-set-keymap這樣做是不是已經與define-derived-mode;查看源代碼,他們做類似的事情,我不確定兩者之間的低級別差異(例如define-derived-mode將父模式的鍵盤映射保留爲新鍵盤映射的父代,而derive-mode-set-keymap還合併了鍵盤映射;這兩者之間的功能差異是什麼?)。

如果你做到以下幾點:

(define-derived-mode foobar-mode text-mode "foo") 

那麼下面的變量將被定義爲:

  • foobar-mode-abbrev-table
  • foobar-mode-hook
  • foobar-mode-map
  • foobar-mode-syntax-table

然後,你可以開始操縱任何這些,只要你喜歡。

+0

謝謝,這是有道理的。另外一些其他使用定義派生模式的lisp示例現在對我更敏感。 – 2010-02-07 14:48:11