zmiana roli podkreślenia i znaku minus tylko w trybie LateX


12

Podczas pracy z plikami tex z auctex + emacs (tryb LateX) używam częściej _ (podkreślenie) zamiast - (znak minus). To samo co ^ zamiast 6. Niedogodność polega na tym, że powinienem częściej naciskać klawisz Shift.

Pożądane byłoby dostosowanie emacsa w taki sposób, aby gdy emacs był w trybie LateX ( i tylko w tym trybie ), kiedy piszę - typy emacs _ i kiedy piszę _ typy emacs -. tj. następujące powiązania klawiszy:

- daje _

_ daje -

6 daje ^

^ daje 6

Czy to możliwe?

Odpowiedzi:


16

Coś takiego:

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

wspaniale, twój kod doskonale działa.
Nazwij

1
(define-key LaTeX-mode-map "-" "_")i tak dalej powinno wystarczyć ( "_"jest interpretowane jako makro klawiatury), plus to działa z TeX-electric-sub-and-superscript.
Constantine,

1
Nie, @Constantine. To, co sugerujesz, spowoduje rekursję.
abo-abo

Och, racja. Robi się, jeśli _i -są odwzorowane względem siebie.
Constantine,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.