¿Cuál es la diferencia entre TAB y <tab>?


15

Estaba leyendo la documentación para el modo Yasnippet, cuando llegué a la sección donde se define la clave de activación:

Parece que el modo menor Yasnippet define la TABclave para ejecutar yas-expandusando:

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

¿Cuál es la diferencia entre <tab>y TAB? (Traté de googlear esto pero no pude encontrar una descripción clara)

Respuestas:


9

Aunque Emacs generalmente traduce <tab>(la clave única) a TAB( C-i), puede vincular <tab> y TABa diferentes cosas:

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

2
Ya veo, pero ¿por qué Yasnippet necesidad de definir tanto <tab>y TAB?
Håkon Hægland

3
@ HåkonHægland si los vincula a diferentes comandos en el mapa global, emacs deja de traducir uno a otro (incluso en mapas de modo menor), por lo que yasnippet une ambos por si acaso.
Malabarba

1
@Malabarba Entonces, si define ambos <tab>y TAB, ¿la única forma de ejecutar el comando asociado TABes escribir C-i?
Håkon Hægland

2
Si se vincula <tab>a un comando diferente al que se vincula TAB, lo que obtiene cuando presiona la tecla "Tab" depende de qué / qué envía a Emacs. Si envía C-i(aka TAB), entonces obtienes el TABenlace. Si envía <tab>, obtienes su enlace. (Y sí, siempre puedes golpear C-ipara obtener la TABencuadernación.)
Dibujó

1
Más información histórica acerca de los diferentes TABentrega las llaves StreakyCobraen este tema spacemacs GitHub. Es posible que desee incluir parte de esa información en su respuesta.
Håkon Hægland
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.