Qual è la differenza tra TAB e <tab>?


15

Stavo leggendo la documentazione per la modalità Yasnippet, quando sono arrivato alla sezione in cui è definita la chiave di attivazione:

Sembra che la modalità minore di Yasnippet definisca la TABchiave da eseguire yas-expandusando:

(define-key yas-minor-mode-map (kbd "<tab>") 'yas-expand)
(define-key yas-minor-mode-map (kbd "TAB") 'yas-expand)

Qual è la differenza tra <tab>e TAB? (Ho provato a cercarlo su Google ma non sono riuscito a trovare una descrizione chiara)

Risposte:


9

Sebbene Emacs di solito traduca <tab>(la singola chiave) in TAB( C-i), è possibile associare <tab> e TABa cose diverse:

(global-set-key (kbd "<tab>") #'proced)
(global-set-key (kbd "TAB") #'indent-for-tab-command)

2
Capisco, ma perché Yasnippet deve definire sia <tab>e che TAB?
— Håkon Hægland,

3
@ HåkonHægland se ti capita di associarli a diversi comandi sulla mappa globale, emacs smette di tradurli l'uno con l'altro (anche su mappe in modalità minore), quindi yasnippet si lega entrambi per ogni evenienza.
— Malabarba,

1
@Malabarba Quindi se si definiscono entrambi <tab>e TAB, l'unico modo per eseguire il comando associato TABè digitare C-i?
— Håkon Hægland,

2
Se ti leghi <tab>a un comando diverso da quello a cui ti leghi TAB, allora cosa ottieni quando premi il tasto "Tab" dipende da quale / cosa invia a Emacs. Se invia C-i(aka TAB) allora ottieni l' TABassociazione. Se invia <tab>quindi ottieni il suo legame. (E sì, puoi sempre colpire C-iper ottenere la TABrilegatura.)
— Estratto il

1
Informazioni più storiche sulle diverse TABchiavi sono date da StreakyCobrain questo spacemacs GitHub problema. Potresti voler includere alcune di queste informazioni nella tua risposta.
— Håkon Hægland,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.