Ä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?

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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.