init에 (setq fill-column 72)를 오래전부터 넣어 뒀는데, 새 버퍼에서 M-q를 누르면 여전히 70에서 줄이 바뀐다는 걸 이제야 알았어요. (*scratch*에서는 72에서 바뀌어서 그동안 스스로를 속였어요.)
fill-column은 자동으로 버퍼 로컬이 되는 변수예요. 이런 변수를 setq로 설정하면 기본값은 안 건드리고, 그 줄이 실행될 때 현재 버퍼에 로컬 값을 만들어요. init 중에는 보통 *scratch*가 현재 버퍼라서, *scratch*만 72를 받고 나머지 버퍼는 손대지 않은 기본값으로 시작한 거예요.
(setq fill-column 72) ; local to the current buffer only
(setq-default fill-column 72) ; the value new buffers start with
C-h v fill-column을 보면 도움말에 "Automatically becomes buffer-local when set"이라고 대놓고 적혀 있어요. 그 문장을 열두 번은 읽었을 텐데 제 init과는 한 번도 연결을 못 했어요. 지금 파일 나머지에서 같은 실수를 찾는 중이에요.