ラテックスモードでの電気インデントモードの動作が好きではありません。他のすべての場所(少なくとも私が使用しているすべての場所)では、すばらしいことです。
ラテックスモードでのみ電気インデントモードを永続的に無効にして、それを他のすべての場所に保持するにはどうすればよいですか?
私の設定ファイルの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)))十分です。