В Emacs, чтобы запустить автоматическое перенос, введите auto-fill-mode .Чтобы установить ширину линии, запустите Cu ⟨ столбцы ⟩ Cx f .Emacs, или действительно CC Mode, будет предвидеть вашу структуру комментариев, так что, набрав /// Это действительно длинная строка, которая будет иметь значение
/// This is a really long line that
/// shoul‸
.Абзац в любое время с помощью Mq .
Если вы хотите выполнять автоматическое пополнение баланса при каждом нажатии клавиши, вполне может быть какая-то внутренняя команда или сторонняя библиотека, но не по назначениюВы можете использовать этот код elisp:
;;; Can't advise SELF-INSERT-COMMAND, so create a wrapper procedure.
(defun self-insert-refill (n)
(interactive "p")
(self-insert-command n))
;;; Advise SELF-INSERT-REFILL to execute FILL-PARAGRAPH after every
;;; keypress, but *only* if we're inside a comment
(defadvice self-insert-refill (after refill-paragraph)
(let ((face (or (get-char-property (point) 'read-face-name)
(get-char-property (point) 'face))) )
(if (and (eq face 'font-lock-comment-face)
(not (string= " " (this-command-keys)))) ; Spaces would get deleted on refill.
(fill-paragraph))))
(ad-activate 'self-insert-refill)
(add-hook 'c-mode-hook
;; Remap SELF-INSERT-COMMAND to be SELF-INSERT-REFILL.
(local-set-key [remap self-insert-command] 'self-insert-refill) ))
Это, вероятно, не очень надежно или не соответствует передовому опыту и, вероятно, не совсем удовлетворительно, так как не будет работать для общего редактирования, например, Cd и backspace , и это несколько замедляет работу редактора, но это только начало.