mengubah peran garis bawah dan tanda minus hanya pada mode LateX

12

Selama bekerja dengan file tex dengan auctex + emacs (LateX-mode), saya lebih sering menggunakan _ (garis bawah) daripada - (tanda minus). Sama seperti ^ bukannya 6. Ketidaknyamanannya adalah saya harus lebih sering menekan tombol shift.

Akan diinginkan untuk menyesuaikan emacs sedemikian rupa sehingga ketika emacs berada dalam mode LateX ( dan hanya dalam mode ini ), ketika saya mengetik - tipe emacs _ dan ketika saya mengetik _ jenis emacs -. yaitu, ikatan-kunci berikut:

- memberi _

_ memberi -

6 memberi ^

^ memberi 6

Apa itu mungkin?

Nama
sumber

Jawaban:

16

Sesuatu seperti ini:

(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
sumber
Hebat, kode Anda berfungsi dengan baik.
Nama
1
(define-key LaTeX-mode-map "-" "_")dan seterusnya harus memadai ( "_"diartikan sebagai makro keyboard), ditambah ini berfungsi dengan baik TeX-electric-sub-and-superscript.
Constantine
1
Tidak, @Constantine. Apa yang Anda sarankan akan menyebabkan rekursi.
abo-abo
Oh benar Itu jika _dan -dipetakan satu sama lain.
Constantine