cambiando il ruolo della sottolineatura e del segno meno solo in modalità LateX


12

Durante il lavoro con i file tex con auctex + emacs (modalità LateX), utilizzo più frequentemente _ (sottolineato) anziché - (segno meno). Lo stesso di ^ invece di 6. L'inconveniente è che dovrei premere più frequentemente il tasto Maiusc.

Sarebbe desiderabile personalizzare emacs in modo tale che quando emacs è in modalità LateX ( e proprio in questa modalità ), quando scrivo - i tipi emacs _ e quando scrivo _ i tipi emacs -. vale a dire i seguenti tasti:

- dà _

_ dà -

6 dà ^

^ dà 6

È possibile?

Risposte:


16

Qualcosa come questo:

(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"))))

meraviglioso, il tuo codice funziona perfettamente.
Nome

1
(define-key LaTeX-mode-map "-" "_")e così via dovrebbe essere sufficiente ( "_"viene interpretato come una macro di tastiera), in più funziona con TeX-electric-sub-and-superscript.
Costantino,

1
No, @Constantine. Quello che suggerisci causerà la ricorsione.
abo-ABO

Oh giusto. Lo fa se _e -sono mappati tra loro.
Costantino,
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.