ハイフネーション解除
必要に迫られて数分でハックしたもの。思いのほか便利だったのでここにメモとして残しておく。
(defun interactive-dehyphenation () (interactive) (while (and (looking-at ".") (re-search-forward "\\([^\n]\\)\n" nil t)) (if (string= (match-string 1) "-") (let* ((word-break (1- (point))) (prev-word (buffer-substring (progn (backward-word 1) (point)) word-break)) (next-word (buffer-substring (1+ word-break) (progn (forward-line) (forward-word 1) (point))))) (goto-char word-break) (if (y-or-n-p (concat "Concat: \"" prev-word " " next-word "\"? ")) (delete-backward-char 1)) (delete-char 1)) (when (looking-at ".") (backward-delete-char 1) (insert " ")))) (message "done."))