Eu estava lendo o arquivo de origem do projétil e eles fazem o seguinte:
(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)
Porque é que eles fazem isto? É para compatibilidade com versões anteriores?
functions
prefix-keys
Czipperz
fonte
fonte
Respostas:
fset
define a definição da função de um símbolo .Aqui,
projectile-command-map
é usado como um comando de prefixo . Um comando prefix é um símbolo cuja definição de função é um mapa de teclas.Isso também pode ser feito com
define-prefix-command
.O que está um pouco confuso aqui é que o mesmo símbolo ,
projectile-command-map
, está sendo usado para duas finalidades:Outro exemplo pode ser mais claro:
Aqui
help-command
está claramente um comando prefixo, enquantohelp-map
é um mapa de teclas.fonte
C-h f defalias
(semelhante afset
). Consulte (elisp) Teclas de prefixo para obter informações sobre comandos de prefixo.help-command
ehelp-map
.grep
parafset
nas fontes Lisp e, em seguida,M-x flush offset
procuremap
.)