5

すべての LaTeX ファイルに対して、デフォルトで auto-fill-mode を有効にしています。

通常はこれで問題ありませんが、1 つのラテックス ファイルにほとんどテーブルが含まれている場合があり、その特定のファイルを編集するたびに自動入力モードを無効にしたいと考えています。

例外にしたい .tex ファイルの先頭に指定することはできますか? または、.emacs でこれらのファイルのパス/名前を指定することは可能ですか?

4

4 に答える 4

4

公式の Emacs ドキュメントの「ファイル内のローカル変数」セクションを参照してください。eval任意のコードを評価できるようにする変数があります。したがって、次のようになります (これをファイルの最後に配置します。コメント char はモード固有にする必要があります)。

# Local Variables:
# eval: (auto-fill-mode -1)
# End:
于 2011-07-12T19:33:48.693 に答える
3

オートフィルを使用するかどうかを判断するために、ファイル内で何かを探すソリューションが好きです。

識別子を一番上に置きたい場合は、次のようなコードを使用できます。

(defun my-auto-fill-disabling-hook ()
  "Check to see if we should disable autofill."
  (save-excursion
    (when (re-search-forward "Some Unique Identifier" 1000 t)
      (auto-fill-mode -1))))

(add-hook 'find-file-hooks 'my-auto-fill-disabling-hook)

そして明らか"Some Unique Identifier"に、テーブル自体の検索など、合理的なものに変更します。そうすれば、あなたはまさにあなたが望むものを手に入れるでしょう、テーブルを含むLaTeXファイルは自動入力されません。

注:@Alexはファイルローカル変数の使用を提案しましたが、これはマニュアル自体によると間違いです:

ただし、多くの場合、この方法でマイナーモードを有効にするのは間違いです。自動入力モードなどのほとんどのマイナーモードは、個々のユーザー設定を表します。マイナーモードを使用する場合は、ローカル変数リストを使用してすべての人に好みを課すのではなく、initファイルでメジャーモードフックを設定して、そのマイナーモードを自分だけでオンにすることをお勧めします(初期化ファイルを参照)。 。

于 2011-07-12T19:48:26.643 に答える
3

このアプローチは、技術的には塗りつぶしモードを無効にしませんが、eval を有効にするのとは異なり、安全であり、目的の結果を達成します。このような行をファイルの最初の行として入れます。正しいメジャー モード (おそらくテキスト) を指定し、fill-column を適切な大きな値に設定するだけです。

-*- mode: text; fill-column: 99999 -*-

前に提案したように、自動入力を有効にするかどうかを決定するフックを作成することもできますが、それは必要以上に手間がかかると感じました。

于 2017-08-02T03:48:04.267 に答える
1

これが追加されたEmacsのバージョンはわかりませんが、auto-fill-functionファイルごとに変数を「中和」することもできます:

# Local Variables:
# auto-fill-function: (lambda nil nil)
# End:
于 2014-03-11T02:10:35.083 に答える