題 如何在emacs中自動換行?


我剛剛嘗試使用M-x的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)

我哪裡錯了?


2
2017-09-14 06:32


起源




答案:


根據 Emacs常見問題解答 你可以只為文本模式打開自動填充模式(對於一般文本文件)

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

如果要全局啟用自動填充模式(對於所有模式),請將此行添加到ini文件中:

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

4
2017-09-14 07:29



謝謝 !!還有一個問題,我得出結論,tex文件(我現在正在使用的文件)不被視為一般文本文件。聽起來很奇怪,不是嗎?
No.Text模式是用於編輯人類語言文本文件的主要模式。名稱以擴展名.txt結尾的文件通常在文本模式下打開 Emacs文本模式 - hostmaster
在您的情況下,很可能是latex-mode,這是在emacs中編輯tex / latex文件的默認模式 - hostmaster


Emacs 23有 visual-line-mode,它不會更改文本,而是在顯示緩衝區時在字邊界上包含長行。某些文件比這更好 auto-fill-mode,它改變了文本,因此失去了“軟”和“硬”換行符之間的區別。

您可以自動開啟 visual-line-mode 在相同的方式 auto-fill-mode, 例如:

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

6
2017-09-15 12:40