【发布时间】:2012-08-14 02:10:36
【问题描述】:
假设我有一个包含以下九行的文本文件:
foo
bar
baz
qux
quux
如何使用 Sublime Text 2 删除所有四行空白/空行,只留下五行?
【问题讨论】:
标签: sublimetext2
假设我有一个包含以下九行的文本文件:
foo
bar
baz
qux
quux
如何使用 Sublime Text 2 删除所有四行空白/空行,只留下五行?
【问题讨论】:
标签: sublimetext2
选择文字
按:
确保您已按以下方式选择“正则表达式”:
查找内容:^\n 或 ^(\r|\n\r?)
替换为:(无,留空)。
【讨论】:
^(\r|\n\r?) 覆盖所有可能的换行符。
^[\s]*?[\n\r]+
?,因为* 也匹配零次出现,\s* 将匹配额外的 '\r',例如在 linux 中编辑 windows 文本环境,所以^\s*$ 可以解决问题。
当行中没有空格时,Hugo 的答案中的正则表达式是正确的。如果有空格正则表达式可以是^\s+$
【讨论】:
^[\s]*?[\n\r]+。我已经测试过了,它可以工作。
还有一些 ST2/ST3 插件可用于此类任务。我喜欢这两个:
第一个有两种删除空行/不必要行的方法。其中一个叫Delete Surplus Blank Lines,这很酷。它只删除那些后面跟着另一个空行的行
【讨论】:
查找/替换解决方案:
正则表达式查找:\s+
替换为: //单个空格
【讨论】:
甚至不知道整个事情是如何运作的,但我试过了
^\s*$ 并没有工作(仍然留下一些空行)。
这个 ^\s* 对我有用
{崇高的文字 3}
【讨论】:
【讨论】:
@crates 的评论对我有用,
第 1 步:只需按下 ctrl+H
第 2 步:按 RegEX 键
第 3 步:在 Find 中写下这个:^[\s]*?[\n\r]+
第四步:全部替换
【讨论】:
比我想象的要简单。 Ctrl + A 后跟 Ctrl + H 然后选择正则表达式 .* 。将\n\n 替换为\n。瞧!
【讨论】:
他们是一种更简单的方法,无需正则表达式。 您只需选择整个文本。 然后转到:编辑-->置换行-->唯一。
就是这样。并且所有空行都将被删除。
【讨论】:
你正在寻找这个:
^\n|^\s+$
如果前面有空格或制表符的内容,它不会删除该行>
例如:
这些不会被删除: ...空格... abc
...制表符...abc
这将:
...空间... ...没有别的...
...标签... ...没有别的...
【讨论】:
使用多选:选择一对换行符,然后使用快速查找全部 (Alt+F3),或快速添加下一个 (Ctrl kbd>+D) 重复选择它们;然后按 Enter 将它们替换为单个换行符。
【讨论】:
另外一种方式,可以使用ConyEdit(一个插件)的命令行cc.dbl来删除空行或者空行。
【讨论】:
还有“加入行”。如果在 OSX 上,选择所有文本,然后按 CMD-J 几次,它将按行折叠您的选择,删除换行符。
编辑:这种方法将使您将所有内容放在一条线上,这不是您所要求的。
【讨论】:
ctrl-q(录制宏) ,cmd-j(加入行),down arrow,ctrl-q(结束宏)。然后shift-ctrl-q 根据需要重复...
对于那些对 sublime 文本编辑器感兴趣的人,unofficial-documentation 可能会很有趣!
【讨论】:
有一个很棒的包(用于 Sublime 2 和 3),名为“Trimmer”,它可以删除空行。它还做了许多其他有用的事情。
【讨论】:
要查找多余的空格和空行,请按 Ctrl+Shift+F 选择正则表达式查找
[\n\r]{2,}
然后替换为
\n
在 sublime 和 dreamviewr 中删除所有类型的空间
【讨论】:
在我的例子中,一些空行包含 unicode 字符 零宽度空格 (U+200b)。要删除空行,包括带有此 Unicode 字符的行:
\s\x{200b}|^\s
【讨论】:
使用查找/替换,尝试从空白行上方的行尾开始粘贴选择,并在空白行后的行首结束。这适用于单个空行。您也可以对多个空行重复该过程。 CTRL-H,将您的选择放在查找框中,并通过复制/粘贴或其他方法在替换框中放置一个换行符。
【讨论】:
如果^\n 不能正常工作 ===> 试试.*[^\w]\n
【讨论】: