Вимкнення режиму електричного відступу лише для одного режиму (латексний режим)


11

Мені не подобається, як працює режим електричного відступу в латексному режимі. Скрізь (принаймні скрізь, де я користуюся) - це чудово.

Як я можу назавжди відключити режим електричного відступу лише для латексного режиму, але зберегти його скрізь?

Я здогадуюсь, що це однорядковий хакер ліпша у моєму конфігураційному файлі чи щось подібне, але я жахливий у lisp, тому я не можу це зрозуміти.

Відповіді:


8

Вам потрібна команда electric-indent-local-mode. Ви можете використовувати це , щоб відключити електродугової відступ режиму в будь-якому буфері, викликавши його вручну M-x electric-indent-local-mode. Це перемикач, тому повторне виклик у тому ж буфері знову вмикає його.

Щоб зробити це автоматично з вашого файлу init, вам потрібно встановити гачок. Спочатку визначте гачок:

(defun remove-electric-indent-mode ()
  (electric-indent-local-mode -1))

Потім додайте його у відповідні гачки режиму. Щоб вимкнути режим електричного відступу для режиму LaTeX, передбаченого AUCTex, використовуйте це:

(add-hook 'LaTeX-mode-hook 'remove-electric-indent-mode)

Для texmode за замовчуванням використовуйте:

(add-hook 'tex-mode-hook 'remove-electric-indent-mode)

Такий же зразок стосується будь-якого іншого режиму, у якому потрібно вимкнути електричний відступ.

Детальніше про гачки режимів див. Вбудований вузол ручного управління Emacs [(emacs) Hooks][1]. Ви можете дістатися до Emacs через C-h i r m Hooks <enter>: C-hдля довідки, iінформації, rдля прочитання посібника, mпункту меню та Hooksвибору пункту меню. (або ви можете перейти за посиланням вище, щоб побачити HTML-версію).


Вам не потрібно визначати додаткову функцію: (add-hook 'LaTeX-mode-hook (lambda () (electric-indent-local-mode -1)))достатньо.
Emil Jeřábek

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