使用自动填充模式自动重新填充整个段落?

Posted

技术标签:

【中文标题】使用自动填充模式自动重新填充整个段落?【英文标题】:Re-filling entire paragraph automatically with auto-fill-mode? 【发布时间】:2013-06-18 19:54:50 【问题描述】:

动机:使用默认设置,自动填充模式似乎没有我想象的那么有用 曾希望:如果我在段落中间插入一个句子,只有当前 线被重新填充。当我插入一个句子时,我希望整个段落都被重新填充。

问题:我怎样才能设置auto-fill-function(或者也许 normal-auto-fill-function) 在我的 .emacs 中 文件以便在单行溢出时重新填充段落? 我尝试将其设置为 fill-paragraph,但随后我无法在段落末尾插入 任何 个空格(例如,添加另一个单词)。

更多细节:我主要在 AUCTeX 主要模式中使用自动填充模式用于 LaTeX。

auto-fill-mode 的内置 Emacs 文档指出:

auto-fill-mode 开启时,auto-fill-function 变量为 非nil

normal-auto-fill-function 的值指定要使用的函数 auto-fill-function 开启自动填充模式时。

normal-auto-fill-function 变量的文档 表示如果自动填充模式是,它是用于auto-fill-function的函数 开启,初始值为do-auto-fill

【问题讨论】:

【参考方案1】:

您不妨试试refill-mode。但总的来说,要使这样的功能正常工作是很棘手的。另一种方法是仅将重新填充作为重新显示的一部分(即不影响缓冲区的实际内容)。为此,请尝试设置word-wrap 或启用visual-line-mode

【讨论】:

感谢您的提示!我会尝试这些模式。【参考方案2】:

对于 LaTeX 文件,您可以尝试(需要 AUCTeX)

(add-hook 'LaTeX-mode-hook '(lambda ()
                  (setq auto-fill-function 'LaTeX-fill-paragraph)))

但请谨慎使用。

【讨论】:

这非常适合在段落内进行编辑,但不允许我在段落末尾插入空格(开始一个新单词)。 (setq auto-fill-function (lambda () (if (looking-at "\n") (do-auto-fill) (LaTeX-fill-paragraph)))) 我的运气更好

以上是关于使用自动填充模式自动重新填充整个段落?的主要内容,如果未能解决你的问题,请参考以下文章

自动清除和重新填充文本区域值

我可以将 Excel 的自动填充与自定义模式一起使用吗?

停止 jQuery 自动完成以过滤/搜索结果并填充整个源数组数据

自动填充公式(跨电子表格运行) - Google 表格/应用程序脚本

自动调整大小的动态文本以填充固定大小的容器

WPS表格双击不能自动填充