하나의 모드 (라텍스 모드)에 대해서만 전기 들여 쓰기 모드 비활성화


11

전기 들여 쓰기 모드가 라텍스 모드에서 작동하는 방식이 마음에 들지 않습니다. 다른 곳에서 (적어도 내가 사용하는 모든 곳에서) 훌륭합니다.

라텍스 모드에서만 전기 들여 쓰기 모드를 영구적으로 비활성화하고 다른 곳에는 어떻게 보관할 수 있습니까?

내 구성 파일의 한 줄 lisp 핵 또는 그와 비슷한 것으로 추측되지만 lisp가 끔찍하기 때문에 알아낼 수 없습니다.

답변:


8

필요한 명령은 electric-indent-local-mode입니다. 이를 사용하여 수동으로 호출하여 버퍼에서 전기 들여 쓰기 모드를 끌 수 있습니다 M-x electric-indent-local-mode. 이것은 토글이므로 동일한 버퍼에서 다시 호출하면 다시 켜집니다.

init 파일에서이 작업을 자동으로 수행하려면 후크를 설정해야합니다. 먼저 후크를 정의하십시오.

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

그런 다음 적절한 모드 후크에 추가하십시오. AUCTex에서 제공하는 LaTeX 모드의 전기 들여 쓰기 모드를 끄려면 다음을 사용하십시오.

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

기본 texmode의 경우 다음을 사용하십시오.

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

전기 들여 쓰기를 끄려는 다른 모드에서도 동일한 패턴이 적용됩니다.

모드 후크에 대한 자세한 내용은 내장 Emacs 매뉴얼 노드를 참조하십시오 [(emacs) Hooks][1]. 당신은을 통해 이맥스에서이 얻을 수 있습니다 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

그러나 함수를 정의하면 코드를 복제하지 않고도 여러 개의 다른 후크에서 재사용 할 수 있습니다. 또한 익명 함수보다 정의 된 함수를 제거하는 것이 더 쉽습니다. 디버깅 할 때 유용 할 수 있습니다
Tyler
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.