【问题标题】:Unwrap text in Sublime Text 2在 Sublime Text 2 中展开文本
【发布时间】:2013-10-14 00:52:11
【问题描述】:

我想解开行,这样我就可以将它们从带有硬换行符的行变成没有换行符。

具体来说,这意味着应将连续运行的非空白行连接在一起 本质上,任何两侧没有空白的\n 都应替换为单个空格。不应触及其他换行符。

我觉得它应该是一个搜索并替换为类似(?!\n)\n(?!\n) -> 的搜索字符串,但这不起作用,因为它不匹配任何内容。

有 ST2 内置命令吗?

【问题讨论】:

  • 我总是为此执行 cmd+opt q,我认为这就像在编辑菜单中加入行。绝对是内置的。
  • 我以前做过一次类似的事情,将所有换行符都转换为空格,然后将所有双空格改回换行符。当然,这只有在您知道文本中没有任何当前存在的双空格时才有效(这很容易找到)。

标签: regex sublimetext2


【解决方案1】:

任何两边都没有空格的\n

(?<!\s)\n(?!\s)

不应触及其他换行符。

(?<!(?:\s|\n))\n(?!\s)

替换为“

【讨论】:

  • 啊!错过了不匹配的后视标记(?&lt;!...)。谢谢。
【解决方案2】:

正如@flow 提到的,该任务有内置插件。只需选择要加入的行并按 Ctrl + J

你的方法也应该有效。只有你错过了一点。应该是(?&lt;!\n)\n(?!\n)

【讨论】:

  • 不幸的是,加入会挤掉 all 换行符,使我的文本变成一个长段落。
  • 使用多项选择:选择每个段落,如果您不想删除段落之间的空白行,则省略最后一行。然后你可以使用 Join Lines,或者如果你想要一些其他的分隔符,Split Into Lines 然后按 End 和 Del。
【解决方案3】:

以下解决方案最适合从包含 80 列的控制台日志复制的文本。只有当行触及最后一列时,它才会删除\n

查找:

(.{80})\n

替换:

$1

【讨论】:

    猜你喜欢
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多