Ich habe die Projektil-Quelldatei gelesen und sie machen Folgendes:
(defvar projectile-command-map
(let ((map (make-sparse-keymap)))
; define-keys
map)
"Keymap for Projectile commands after `projectile-keymap-prefix'.")
(fset 'projectile-command-map projectile-command-map)
Warum machen sie das? Ist es für die Abwärtskompatibilität?
functions
prefix-keys
Czipperz
quelle
quelle
Antworten:
fset
Legt die Funktionsdefinition eines Symbols fest .Hier
projectile-command-map
wird als Präfixbefehl verwendet . Ein Präfixbefehl ist ein Symbol, dessen Funktionsdefinition eine Keymap ist.Dies kann auch mit erfolgen
define-prefix-command
.Was ist ein bisschen hier verwirrend ist , dass das gleiche Symbol ,
projectile-command-map
wird für zwei Zwecke verwendet werden:Ein anderes Beispiel könnte klarer sein:
Hier
help-command
ist eindeutighelp-map
ein Präfixbefehl , während es sich um eine Keymap handelt.quelle
C-h f defalias
(ähnlich wiefset
). Siehe (elisp) Präfix Keys für Informationen über Präfix - Befehle.help-command
undhelp-map
.grep
dennfset
in den Lisp-Quellen dannM-x flush offset
und suchen nachmap
.)