somemo's diary

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【Emacs】自動改行の制御

Emacsでは、一行に記述している文字が多くなると自動で改行されます。これを制御する方法をメモしておきます。

自動改行

下記のような設定が行われているようです。

(setq fill-column 80)
(setq text-mode-hook 'turn-on-auto-fill)
(setq default-major-mode 'text-mode)

80桁で自動改行し、それをテキストモードに割り当てています。テキストモードはどのモードでも設定されるようなので自動改行も常に行われます。また、試したところ日本語を入力したときに自動改行されることが多いです。

auto-fill-mode

simple.elに以下のような記述があります。

(defun turn-on-auto-fill ()
  "Unconditionally turn on Auto Fill mode."
  (auto-fill-mode 1))

(defun turn-off-auto-fill ()
  "Unconditionally turn off Auto Fill mode."
  (auto-fill-mode -1))

(custom-add-option 'text-mode-hook 'turn-on-auto-fill)

この中にあるauto-fill-modeによって切り替えています。初期設定する場合は上記と同じようにinit.el加えればよさそうです。また、on/offを切り替えたい場合は下記のように実行します。

M-x auto-fill-mode

fill-column

影響はわかりませんが、下記変数の値を変えるのもありだと思います。

(setq fill-column 0)
(setq fill-column nil)

0の場合は、すぐに自動改行されてしまいます。nilの場合、自動改行をしないようになります。