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:
fsetestablece la definición de la función de un símbolo .Aquí,
projectile-command-mapse 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-commandes claramente un comando de prefijo, mientras quehelp-mapes 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-commandyhelp-map.grepparafseten las fuentes de Lisp, luegoM-x flush offsety buscarmap.)