Command Palette

Search for a command to run...

为什么粘贴的文本会中断句中(和修复)

为什么粘贴的文本会中断句中(和修复)

T
Toolz Team
|Sep 13, 2026|16 最小读数
Google 上的首选 Toolz.dev

文本工具集合的一部分

删除换行符

从文本中删除换行符和回车符,并将换行符重新连接在一起。将整个块压平或保留段落分隔符,并带有修剪和空间折叠选项,所有这些都在您的浏览器中。

用删除换行符

this bit me的第一次,我从一个PDF中复制一块条款和条件到一个支持回复中,在PDF中看起来很好,它降落在我的编辑器中的那一刻它变成了一个楼梯,每一行都在页面中间折断到一个新的行,因为PDF已经烤出了一个硬返回到每个视觉线的末端,用手修复它意味着删除一个换行符,增加一个空间,并重复那四十次,我在toolz。dev上构建了足够的工具,知道什么时候工作值得自动化,而这个已经悄悄浪费了我的时间多年,所以我构建了 删除换行工具的,而这份指南是我所了解的关于问题为何存在以及如何正确清理它的一切。

TL;博士: PDF、电子邮件、终端复制而来的文字,往往在每一行显示的末尾都有一个换行符,而不是只在每一段的末尾,粘贴它会留下破碎、破烂的线条。的 删除换行工具 删除那些换行符并用您选择的分隔符连接文本,其段落感知模式保留段落之间的空行,因此结果读作散文,而不是一行巨大的运行行。它全部在您的浏览器中运行,因此不会上传任何内容。

为什么我的复制文本充满了换行符?

简短的答案是换行和换段是两回事,很多软件都混淆了它们。

Type in word processor 或浏览器时,只在段落末尾回车,文字自动包裹在段落内部,所以看到的视觉线条由窗口的宽度即时决定,段落内部完全没有换行符,那叫软包裹,也是为什么当你调整窗口大小时,同一段落会干净地回流。

PDF 存储每一行的位置,很多其他来源则相反。PDF 存储每一行的位置,因此当你从中复制文本时,提取器通常会在页面上看到的每一行末尾放置一个真正的换行符。纯文本电子邮件历史上被包裹在 72 或 76 列,每行都有硬返回,这种约定早于网络,并且仍然出现在邮件列表中并引用回复。代码注释、日志文件以及打印到固定宽度终端的任何内容都执行相同的操作。在所有这些操作中,换行符并不是标记一个想法的结束,而是标记一个恰好那么宽的物理行的结束。

当你将其粘贴到一个进行软包装的地方时,两个想法发生了冲突。你的编辑已经将文本包装起来以适应,现在有额外的硬回报在行到达边缘之前将行剪短。结果是楼梯:行在奇怪的地方断裂,拒绝回流,除了复制出来的窗户之外,每个窗户尺寸都看起来都断了。

消除换行符有什么作用?

删除换行符意味着删除那些换行符并将各个部分拼接在一起,以便单词再次作为连续文本流动。唯一真正的决定是将每个换行符曾经所在的间隙放入什么位置。

大多数时候你想要一个空格,因为换行符是代替句子通常具有的两个单词之间的空格。有时你根本不想要任何东西,例如当长数字或代码令牌被分成两行并且需要重新连接时没有间隙。有时你想要一个逗号或其他分隔符,因为这些行实际上是一个列表,你希望它们在一行上作为逗号分隔的值。该工具为您提供所有这些,以及任何其他内容的自定义字段。

还有一个值得了解的字符。Windows 以两个字符结束行,回车后跟换行,写为 CRLF。Unix 和现代 macOS 使用单行 feed,LF。非常旧的 Mac 软件使用孤独的回车,CR。如果混合来自不同来源的文本,您最终可能会得到所有三个的参差不齐的组合,而只寻找其中一个的天真的查找和替换会留下其他的。删除换行工具会首先使所有三个都正常化,因此无论您的文本来自哪里,每个行结尾都以相同的方式处理。

如何删除换行符但保留我的段落?

这是将工具从钝器变成有用的工具的功能,因此值得理解。

Document里简单地删除每一行换行,就得到一个巨大的段落,所有的句子一起跑成一行不折不扣的单行,让文字可读的结构就没了,那偶尔是你想要的,但通常不是你想要的,就是把每段内不小心划掉的行断,同时保留段落间刻意的断。

器看空白线来区分两者, 单条换行符被当作一段内的一不小心断掉, 被移除, 一条空白线, 即一行两条换行符被当作真正的段落边界, 被保留, 所以这样被断掉的文档:

The quick brown fox
jumps over the lazy dog.

A second paragraph
follows after a blank line.

out as两个干净的段落,它们之间有一条空白线,而不是一个长线,这正是从PDF或包装电子邮件中复制的文本形状,其中每个段落内部被破坏,但段落之间用空白线将保留-段落-breaks选项保留在上面,这是默认的,工具做正确的事,无需再做任何小提琴。

当您真正想要一行上的所有内容时,请关闭该选项。然后,整个输入中的每条换行都会被您选择的分隔符替换,这就是您将一列值转换为单个逗号分隔行的方式。

我应该选择哪个分隔符?

分隔符是替换每个已删除换行的字符串,正确的选择取决于线代表什么,以下是常见选项在相同三行输入上的行为方式 apple、 banana、 cherry:

分离器 结果 当使用它时
空间 apple banana cherry 这些行是应该读作散文的单词或句子片段
没什么 applebananacherry 一个令牌被分成两行,必须毫无间隙地重新连接
逗号 apple, banana, cherry 这些行是您想要的逗号分隔值的列表
分号 apple; banana; cherry 您需要一个不会与数据中的逗号冲突的列表分隔符
管 apple | banana | cherry 您正在构建 Markdown 表行或分隔记录
定制 无论你输入什么 您需要特定的连接器,例如 - 或者一个选项卡

Space是默认的,因为它比普通散文的任何其他选择都正确得多。当您重塑数据而不是阅读数据时,列表分隔符就会变成它们自己的,例如将电子表格中复制的列变成单行,您可以粘贴到查询中。

清理选项做什么?

两个额外的切换将输出整理到连接本身之外,并且两者默认打开,因为它们几乎总是有帮助。

Trim 在行连接之前去掉每行起点和结尾的空白,这很重要,因为复制的文本经常带有你看不到的尾随空格,而一旦行不再是自己的行,你不想保留的行起点的缩进就没有修剪,那些杂散的空格在连接中幸存下来,并在连接文本的中间显示为尴尬的空白。

Collapse spaces更进一步,将任何两个或多个空格或选项卡的运行减少到单个空格。一旦行连接,很容易最终得到双空格,其中尾随空格遇到领先空格,或者原文使用空格对齐某物。折叠它们会给你散文期望的单个间距。重要的是,这只触及空格和选项卡,永远不会分离段落的换行符,因此它不会撤销段落感知连接。

还有一个删除-空行选项,默认情况下关闭,对于输入有杂散空行你不想成为段落间隙的情况。打开后,空行会被删除而不是保留,这对于清理双间隔导出很有用。

在浏览器中执行此操作安全吗?

是的,这是我关心的一点,因为它是 toolz。dev 背后的整个设计理念。remove line breaks 工具完全在您的浏览器中使用 JavaScript 运行。您粘贴的文本在您正在查看的页面的内存中进行处理,并且它永远不会上传到服务器。没有帐户,没有日志记录,也没有网络请求在任何地方携带您的内容。

That matters more than it first appeared 人们最常需要回流的文本是他们从某个私密的地方复制的文本:从 PDF 中复制出一个合同,一个内部电子邮件,一个客户消息,一个代码块,将它发送到远程服务器以删除其换行符对于这样一个琐碎的操作来说将是一个荒谬的隐私交易,因为工作是本地化的,也没有上传限制,所以一个非常大的文档回流速度就像一个短文档,即使你的连接在页面加载后下降,该工具也继续工作如果你想要更长的论证为什么客户端处理是这样的实用程序的正确默认值,我把它写在了 数据隐私和在线工具指南。

这与查找和替换有何不同?

当然,您可以在任何带有查找和替换的编辑器中自己执行此操作,一次性执行即可。我仍然使用专用工具的原因归结为手动查找和替换会出错的三件事。

首先是段落问题。用空格简单地替换换行符将所有内容平坦成一行,因为它无法区分段内从段落边界的断裂。要用手保留段落,你必须跳两步舞:首先用占位符替换双换行符,然后用空格替换单换行符,然后将双换行符放回原处。那是狡猾的,很容易出错。

其次,混合行结尾。如果您的文本混合了 CRLF、LF 和 CR,则单个查找和替换模式会错过其中一些,并且您将寻找掉队者。该工具会将所有三个都标准化。

第三,空白清理。连接后,您通常想折叠双空格并修剪末端,即按正确的顺序完成一两个替换通行证。该工具将所有这些折叠成一个带有可见切换的操作,因此您可以准确地看到每个操作的操作并调整,而无需重做整个事情。

这一切都不是手工不可能的。它只是足够缓慢且容易出错,以至于专门构建的工具在您需要它的第二次或第三次时为自己付费。同样的逻辑就是为什么我保留一整架小型文本实用程序,就像 重复的线去除器 用于删除列表和 行分类器 用于订购一个,而不是每次都伸手去拿一个草稿。

我什么时候想删除所有换行符?

有一些真正的情况可以将所有内容折叠为一行,它们值得大声疾呼,这样您就知道何时关闭段落选项。

最清晰的是数据重塑,你从电子表格中复制一列,它以每行一个值的形式到达,你希望它作为一个逗号分隔的列表掉入一个 SQL IN (...) clause 或一个 config 数组,关闭 keep-paragraph-breaks,选择逗号分隔符,你就有你的行,用管道分隔符构建 Markdown 表行,或者组装查询字符串也是如此。

Another is rejoining a token that was wrapped。a long URL, a base64 blob, or a API key which got split across lines in a email need to become one continuous string with no separator。counting paragraph breaks, select nothing as the separator, and the fragments fuse back into a single token。

经验法则很简单,如果你正在为人类阅读散文,请继续阅读段落。如果您正在将文本重塑为单个机器可读值,请将其关闭。在同一输入上能够在两者之间翻转,边走边观看结果更新,这是我将两种行为构建为一种工具而不是两种工具的原因。如果清理后的文本位于某个地方,您将不断编辑,站点上更广泛的套件,从 案例转换器 到 词计数器,拾起这款离开的地方对于更广泛的日常文本和代码帮助者来说, 开发人员生产力工具指南 是一个很好的地图,而且 编码工具指南 涵盖格式化方面。

常见问题

如何从文本中删除换行符?

将您的文本粘贴到 remove 换行工具中,并保留默认设置,它用单个空格替换段落内的每个换行,并立即显示加入的结果,然后您可以复制整个事情发生在您的浏览器中。

删除换行符时如何保留我的段落?

Keep-paragraph-breaks选项保留在,这是默认的,然后工具只将每个段落内部的单行breaks压平,并在段落之间保留一行空白,因此保留了文本的结构,而不是折叠成一行。

我可以将所有线连接成一条线吗?

是。关闭 keep-paragraph-breaks 选项,整个输入被折叠成一行连续的行,这对于将一列值变成单个逗号分隔行或重新加入跨行分割的令牌非常方便。

换行和回车有什么区别?

换行是 Unix 和现代 Mac 系统上使用的换行字符。回车是较旧的 Mac 结尾,Windows 将两者一起用作 CRLF。该工具将这三个都标准化,因此任何源文本无论来自哪里都以相同的方式连接。

如何用逗号而不是空格替换换行符?

选择逗号分隔符。每个删除的换行符都替换为逗号和空格,这将行列表变成逗号分隔列表。自定义选项可让您使用任何您想要的连接器,例如选项卡或破折号。

为什么输出仍然有双空间?

当行在加入之前已经在空格中结束时,就会发生这种情况。打开折叠空格选项可将任意运行的空格或选项卡减少到单个空格,并打开修剪以首先删除行末尾的空格。两者默认都打开。

删除换行符会改变我文本中的单词吗?

No。工具只去掉换行符,如果问,tidies空白,单词、标点、它们的顺序都完全保持原样,所以文本的含义不变。

在这里粘贴私人文本安全吗?

是所有处理完全在您的浏览器中与JavaScript。您的文本永远不会上传或存储,并且一旦页面加载,该工具就一直工作,没有网络连接,这使得合同,电子邮件和代码是安全的。

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!