Ändern der Rolle der Unterstreichung und des Minuszeichens nur im LateX-Modus

12

Während der Arbeit mit Tex-Dateien mit auctex + emacs (LateX-Modus) verwende ich häufiger _ (unterstrichen) anstelle von - (Minuszeichen). Das Gleiche wie ^ statt 6. Der Nachteil ist, dass ich öfter die Umschalttaste drücken muss.

Es wäre wünschenswert, Emacs so anzupassen, dass wenn sich Emacs im LateX-Modus befindet ( und nur in diesem Modus ), wenn ich tippe - die Emacs-Typen _ und wenn ich _ die Emacs-Typen tippe -. dh die folgenden Tastenbelegungen:

- gibt _

_ gibt -

6 gibt ^

^ gibt 6

Ist es möglich?

Name
quelle

Antworten:

16

Etwas wie das:

(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
quelle
wunderbar, Ihr Code funktioniert perfekt.
Name
1
(define-key LaTeX-mode-map "-" "_")und so weiter sollte ausreichen ( "_"wird als Tastaturmakro interpretiert), dazu funktioniert das mit TeX-electric-sub-and-superscript.
Constantine
1
Nein, @Constantine. Was Sie vorschlagen, führt zu einer Rekursion.
abo-abo
Oh, richtig. Es funktioniert, wenn _und -aufeinander abgebildet sind.
Constantine