硬换行和软换行有什么区别?

127

我正在编写一个文本编辑器。在查看其他文本编辑器后,我注意到一些编辑器提到“软”和“硬”换行。它们之间有什么区别?我搜索了一下,似乎没有找到答案。

我正在编写一个文本编辑器,想了解“软”和“硬”换行的区别。请问这两个概念有何不同?尽管我已经搜索了相关信息,但是并没有找到满意的答案。

3个回答

176

硬换行在文本的换行点处插入实际的换行符,而软换行则保持实际文本仍在同一行,但看起来像被分成了几行。


23

通常文本编辑器会自动在硬换行处将文本包含在段落中,但如果您稍后再次编辑/添加/删除单词,则很少有文本重新排版成漂亮的段落。(您可以在emacs中使用M-q手动完成此操作。)

这非常烦人,因为像我这样的强迫症患者需要回去手动重新插入适当的硬换行。

另一方面,软折行也很烦人,因为大多数命令行工具使用基于行的差异比较(版本控制是我最容易注意到的地方)。如果您有一个软折行的1/3页段落并修正了打字错误,那么在常规的diff输出或类似输出中,基本无法看出变化发生在哪里。


3
我知道你说的是“普通”的差异,但是我想指出,突出显示真的非常方便。 - SW.
1
@Will,像你这样的OCD患者建议使用什么样的解决方案? - Pacerier
如果您使用Vim,并打开行号(:set nu),那么您会发现它在软换行的同时保持它们分开,这样,即使一个单独的行比屏幕宽,您仍然能够阅读所有的文本,但它不会影响您按行号搜索的能力。(可见行与实际行不同)。您也可以通过键入:10或:30等来直接跳转到一行。 - daviewales
如果您正在使用Git,使用软换行符查看更改非常容易。请使用 git diff --word-diff - Anthony Ebert

19

软换行:表单提交时,文本区域中的文本不会被换行。这是默认设置。

硬换行:表单提交时,文本区域中的文本会被换行(包含换行符)。使用“硬换行”时,必须指定cols属性。

参考资料:W3Schools


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接