如何在 emacs 中自动换行?

如何在 emacs 中自动换行?

我刚刚尝试使用 Mx 实现 Gnu emacs 23 自动长行换行功能auto-fill-mode。它运行完美。现在我修改了我的.emacs文件,如下所示,让此功能始终处于打开状态,但它不起作用...

;;; Xemacs backwards compatibility file
(setq user-init-file
      (expand-file-name "init.el"
            (expand-file-name ".xemacs" "~")))
(setq custom-file
      (expand-file-name "custom.el"
            (expand-file-name ".xemacs" "~")))

(load-file user-init-file)
(load-file custom-file)
(global-linum-mode t)

;;; Scrollbar on the right
(set-scroll-bar-mode 'right)

;;; Open help file
(find-file "/home/manu/These/Docs/Emacs-Shortcuts")
(split-window-horizontally)

;;; Transparency
 ;;(set-frame-parameter (selected-frame) 'alpha '(<active> [<inactive>]))
 (set-frame-parameter (selected-frame) 'alpha '(85 50))
 (add-to-list 'default-frame-alist '(alpha 85 50))

;;; Auto fill to wrap long lines
(add-hook 'text-mode-hook 'turn-on-auto-fill)

我哪里错了?

答案1

根据Emacs 常见问题您可以仅为文本模式打开自动填充模式(适用于一般文本文件)

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

如果您想要全局启用自动填充模式(针对所有模式),请将以下行添加到您的 ini 文件中:

(setq-default auto-fill-function 'do-auto-fill)

答案2

Emacs 23 具有visual-line-mode,它不会更改文本,而是在显示缓冲区时在单词边界处换行。对于某些类型的文档,这比auto-fill-mode,这会改变文本,因此会失去“软”换行符和“硬”换行符之间的区别。

visual-line-mode您可以使用与 相同的方式自动开启auto-fill-mode,例如:

(add-hook 'text-mode-hook 'turn-on-visual-line-mode)

相关内容