зміна ролі підкреслення та знаку мінус просто в LateX-режимі


12

Під час роботи з текстовими файлами з auctex + emacs (режим LateX) я частіше використовую _ (підкреслення) замість - (знак мінус). Те саме, що ^ замість 6. Незручність полягає в тому, що я повинен частіше натискати клавішу Shift.

Хочеться налаштувати emacs таким чином, що коли emacs знаходиться в LateX-режимі ( і просто в цьому режимі ), коли я ввожу - типи emacs _ і коли я ввожу _ типи emacs -. тобто такі прив'язки ключів:

- дає _

_ дає -

6 дає ^

^ дає 6

Це можливо?

Відповіді:


16

Щось на зразок цього:

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

чудово, ваш код прекрасно працює.
Ім'я

1
(define-key LaTeX-mode-map "-" "_")і так далі повинно бути достатньо ( "_"інтерпретується як макрос клавіатури), плюс це працює з TeX-electric-sub-and-superscript.
Костянтин

1
Ні, @ Константин. Те, що ви пропонуєте, спричинить рекурсію.
Або-Або

Авжеж. Це відбувається, якщо _і -відображаються між собою.
Костянтин
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.