7

在编辑非 WYSIWYG(LaTeX、HTML 等)散文时,您可能希望在句子末尾添加换行符。这有几个优点:

  1. 更容易重新排列句子。
  2. 更容易注释掉句子。
  3. 更容易发现连续/过长的句子。
  4. 更容易评论句子

例如:

% The following isn't strictly true; maybe excise or comment out for now:
After all, people who use Word or other WYSIWYG editors are aiding and 
abetting terrorists.

最重要的优势可能是它使版本控制下的协作编辑变得更加容易。否则,您最终会遇到冲突,它只会告诉您“这个巨大段落的以下两个版本存在冲突”。

但是在句子末尾保留换行符说起来容易做起来难......

As you edit the prose
it will get all chopped up, like this.
Normally you'd do a "reformat paragraph"
to clean it up, but then
you lose the newlines at the ends of your sentences!

以下问题询问如何在 emacs 中解决此问题:

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

我想知道人们如何在其他编辑器中处理这个问题,包括 vim、TeXShop、TextMate 以及您认为在这里收集的任何其他工具。也欢迎有关软包装与硬包装的建议。

4

7 回答 7

3

我认为最简单的解决方案是仅在句号后添加换行符。您的编辑将永远不会分割线。

请注意,对于散文,您可以很好地依靠编辑器的换行功能来​​换行长句子 - 除非您坚持像使用代码一样缩进它(我在乳胶中缩进不多),

于 2009-02-12T23:40:55.973 回答
1

普通的文本编辑器不应尝试更改您编写的文件,除非您明确要求它这样做。它可能会更改文件在屏幕上的外观以提高可读性,仅此而已。

因此,根据我的经验,大多数体面的编辑器都会进行软换行,并在插入它们的任何地方保持换行符。

就这样。我必须承认我看不出有什么大惊小怪的,除非您使用一些非常奇怪的文本编辑器,它们坚持进行硬换行并需要变通方法。

如果您想保持格式对 diff 有用,只需在每个句子后换行,并接受 diff 将在句子级别上起作用。

于 2009-02-13T07:17:51.150 回答
1

维姆:

您可以关闭文本换行 ( set formatoption-=t),除非您按 Enter,否则它不会添加换行符。更好的是,如果你能弄清楚如何设置'comments'选项以便它识别你的评论,你可以只为你的评论设置自动换行宽度,而不是其他任何东西:

set comments=b:%
set textwidth=80
set formatoption+=c
set formatoption-=t

这是我使用的方法,所以我的评论很整洁,但除非我自己做,否则我的代码不会被破坏。

于 2009-02-13T00:04:19.537 回答
1

在 vim 中,您可以使用 . 填充到当前句子的末尾gw)。它不会为您重新格式化整个段落或区域,但是如果您小心地在每个句子后插入换行符,并且在gw)编写时重新格式化,它会很好地工作。

于 2009-04-29T19:10:20.427 回答
1

无论您做什么,如果您处于协作环境中,请不要使用自动硬包装整个文档的编辑器。朋友不要让朋友使用 WinEdt。

于 2011-04-08T15:07:29.327 回答
0

我想知道人们在其他编辑器中是如何处理这个问题的,

FWIW 在 Windows 平台上,Zeus编辑器具有可配置的右边距和内置的换行功能。

例如,将右边距设置为60 个字符,标记示例文本,然后使用宏、换行段落菜单,Zeus将重新格式化文本,如下所示:

As you edit the proseit will get all chopped up, 
like this. Normally you'd do a "reformat 
paragraph"to clean it up, but thenyou lose the 
newlines at the ends of your sentences!

换行很困难,因为上面的所有行都插入了行尾字符。

于 2009-02-13T01:25:52.680 回答
0

你不想在句子末尾换行。

确保做你列出的 4 件事更容易,但这与世界其他地方的做法不同(即使世界的原因与 CR LF = 换行符背后的推理一样愚蠢)。

而你最大的优势不是真的:

否则,您最终会遇到冲突,它只会告诉您“这个巨大段落的以下两个版本存在冲突”。

它怎么知道什么时候是基于行的,什么时候是基于句子的?

您可以使用 Meld 或一些类似的 diff 工具并让它完成工作。

于 2009-02-13T15:29:47.097 回答