C-RET (C-j) で前の行のインデントを保持して改行はできるんだけど、タブとスペースが混じっている場合スペースがタブに変わっちゃうのが微妙に困る。 (自分だけで使うなら全く困らないけど、タブ幅が違う環境に持っていくと困る)
; 前の行の空白状態を保持するように。 (defun indent-relative () (interactive "*") (delete-horizontal-spaces) (insert (save-excursion (goto-bol) (skip-chars-backward " \t\n") (goto-bol) (looking-at "^[ \t]*") (buffer-substring (match-beginning 0) (match-end 0)))))
cmds.l に定義されている indent-relative() を .xyzzy か siteinit.l で再定義。弊害あるかもしれない。