当前位置:  开发笔记 > 开发工具 > 正文

如何让Emacs填充句子,而不是段落?

如何解决《如何让Emacs填充句子,而不是段落?》经验,为你挑选了1个好方法。

我已经看到 StackOverflow 上至少有两条建议在编辑LaTeX文档时在句子之间插入换行符.原因是该实践有助于源代码控制,diff协作编辑.

我基本上确信,但我很懒,而且我不想考虑它.

所以我正在寻找一些emacs咒语来为我处理它.可能是次要模式,可能是需要设置的一组变量.

我想我想要的是

文本的软包装(比如使用延绳和(set long-lines-auto-wrap 't)).这是因为我不想对我的协作者编辑施加要求,有时会使用其他unix工具来检查这些文件.

我想我想要的是

用于fill-paragraph填充看起来像是标记句子结尾的换行符.

与之合作的解决方案auto-fill-mode将是一个奖励.

那是:

聊天聊天.
一个新的句子
包含了需要修复的包装.
嘟m嘟

转变为:

聊天聊天.
一个新的句子包含了需要修复的包装.
嘟m嘟

您的意见和建议表示赞赏.


编辑:JouniK.Seppänen的建议指出了我LaTeX-fill-break-at-separators,这表明emacs几乎知道如何做到这一点.无论如何,我要读一些代码,然后报告回来.再次感谢.


同一问题的更一般版本:编辑摊牌:在句子末尾保持换行符.谢谢,dreeves.



1> Chris Conway..:

这就是我使用的东西,其中大部分来自Luca de Alfaro:

(defun fill-sentence ()
  (interactive)
  (save-excursion
    (or (eq (point) (point-max)) (forward-char))
    (forward-sentence -1)
    (indent-relative t)
    (let ((beg (point))
          (ix (string-match "LaTeX" mode-name)))
      (forward-sentence)
      (if (and ix (equal "LaTeX" (substring mode-name ix)))
          (LaTeX-fill-region-as-paragraph beg (point))
        (fill-region-as-paragraph beg (point))))))

我把它绑M-j在一起

(global-set-key (kbd "M-j") 'fill-sentence)

引用"LaTeX"是针对AUCTeX支持的.如果您不使用AUCTeX,let可以简化为

(let (beg (point))
  (forward-sentence)
  (fill-region-as-paragraph beg (point)))

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有