ラテックスモードでの電気インデントモードの動作が好きではありません。他のすべての場所(少なくとも私が使用しているすべての場所)では、すばらしいことです。
ラテックスモードでのみ電気インデントモードを永続的に無効にして、それを他のすべての場所に保持するにはどうすればよいですか?
私の設定ファイルの1行のlispハックか、そのようなものだと思いますが、lispは恐ろしいので、それを理解することはできません。
ラテックスモードでの電気インデントモードの動作が好きではありません。他のすべての場所(少なくとも私が使用しているすべての場所)では、すばらしいことです。
ラテックスモードでのみ電気インデントモードを永続的に無効にして、それを他のすべての場所に保持するにはどうすればよいですか?
私の設定ファイルの1行のlispハックか、そのようなものだと思いますが、lispは恐ろしいので、それを理解することはできません。
回答:
必要なコマンドはelectric-indent-local-mode
です。これを使用して、手動で呼び出すことにより、任意のバッファーでelectric-indent-modeをオフにすることができますM-x electric-indent-local-mode
。これはトグルなので、同じバッファーでもう一度呼び出すと、再びオンになります。
これをinitファイルから自動的に行うには、フックを設定する必要があります。まず、フックを定義します。
(defun remove-electric-indent-mode ()
(electric-indent-local-mode -1))
次に、それを適切なモードフックに追加します。AUCTexが提供するLaTeXモードのelectric-indent-modeをオフにするには、次のコマンドを使用します。
(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)))
十分です。