我知道 emacs 中有自动填充功能,这很棒,当我希望文本在特定宽度上有换行符时(例如编码时),我会使用它。但是,在编辑和阅读文本时,我不想重新格式化文本(M-q
)并插入换行符,因为这在导出文本时看起来很奇怪,例如发送至电子邮件或 Microsoft Word。
emacs“截断行”是完成这项工作的工具吗?似乎是,但我不知道如何设置截断线的宽度,它似乎只能截断屏幕宽度 - 是否有此模式或其他模式的设置?
(我正在使用 spacemacs,但这应该没有多大相关性)
最佳答案
在 emacs 交换 here 中有一段代码截断小于 wincow 的缓冲区的代码。
看看@JeanPierre 的回答。它使用 set-window-margins
请参阅 emacs 手册 here .
它是一个交互式函数,因此在从头开始计算后使用 M-x my/change-window-width
来调用它。
(defun my/change-window-width (width)
"Adjust margins so that window is centered"
(interactive "NWindow width: ")
(if (= 0 width)
(set-window-margins nil 0 0)
(let* ((cur-width (window-width))
(cur-m (window-margins))
(cur-l (if (and cur-m (car cur-m)) (car cur-m) 0))
(cur-r (if (and cur-m (cdr cur-m)) (cdr cur-m) 0))
(lr (- (+ cur-l cur-r cur-width) width))
(left (/ lr 2))
(right (if (= 0 (% lr 2)) left (1+ left))))
(set-window-margins nil (max left 0) (max right 0)))))
它是 visual-line-mode
中函数的变体,请参阅文档 here
仅截断缓冲区的一部分,它看起来像 fill-column
关于emacs - 如何在 Emacs 中设置截断行的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50112824/