cambiar el papel del subrayado y el signo menos solo en modo LateX

12

Durante el trabajo con archivos tex con auctex + emacs (modo LateX), uso más frecuentemente _ (subrayado) en lugar de - (signo menos). Lo mismo que ^ en lugar de 6. El inconveniente es que debería presionar con más frecuencia la tecla Mayús.

Sería deseable personalizar emacs de tal manera que cuando emacs esté en modo LateX ( y solo en este modo ), cuando escriba - los tipos de emacs _ y cuando escriba _ los tipos de emacs -. es decir, las siguientes combinaciones de teclas:

- da _

_ da -

6 da ^

^ da 6

¿Es posible?

Nombre
fuente

Respuestas:

16

Algo como esto:

(add-hook 'LaTeX-mode-hook 'my-latex-hook)

(defun my-latex-hook ()
  (require 'tex-site)
  (define-key LaTeX-mode-map "-" (lambda () (interactive) (insert "_")))
  (define-key LaTeX-mode-map "_" (lambda () (interactive) (insert "-")))
  (define-key LaTeX-mode-map "6" (lambda () (interactive) (insert "^")))
  (define-key LaTeX-mode-map "^" (lambda () (interactive) (insert "6"))))
abo-abo
fuente
maravilloso, tu código funciona perfectamente.
Nombre
1
(define-key LaTeX-mode-map "-" "_")y así sucesivamente debería ser suficiente ( "_"se interpreta como una macro de teclado), además de esto funciona TeX-electric-sub-and-superscript.
Constantine
1
No, @Constantine. Lo que sugiera causará recurrencia.
abo-abo el
Correcto. Lo hace si _y -se asignan entre sí.
Constantine