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.