Estaba leyendo el archivo fuente del proyectil y hacen lo siguiente:
(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)
¿Por qué hacen esto? ¿Es por compatibilidad con versiones anteriores?
functions
prefix-keys
Czipperz
fuente
fuente
Respuestas:
fset
establece la definición de la función de un símbolo .Aquí,
projectile-command-map
se usa como un comando de prefijo . Un comando de prefijo es un símbolo cuya definición de función es un mapa de teclas.Esto también se puede hacer con
define-prefix-command
.¿Qué es un poco confuso aquí es que el mismo símbolo ,
projectile-command-map
, se utiliza para dos fines:Otro ejemplo puede ser más claro:
Aquí,
help-command
es claramente un comando de prefijo, mientras quehelp-map
es un mapa de teclas.fuente
C-h f defalias
(similar afset
). Consulte (elisp) Prefix Keys para obtener información sobre los comandos de prefijo.help-command
yhelp-map
.grep
parafset
en las fuentes de Lisp, luegoM-x flush offset
y buscarmap
.)