轻松重新包装文本

轻松重新包装文本

我正在寻找一种工具,可以让我轻松地重新换行,即从文本选择或文本字段中删除换行符(但不删除空行)的工具,适用于 Chrome 和 Windows。

对于任何可以在浏览器之外运行的东西,只要能运行就加分到位(即不需要通过单独的窗口复制粘贴文本或使用类似http://www.textfixer.com/tools/remove-line-breaks.php

浏览器扩展、GreaseMonkey 脚本或在 Linux 和/或 Mac 上运行的应用程序(或者更好的是,跨平台的)都受到欢迎。

以下是该工具应如何运行的示例。如果我在文本字段中有以下内容:

This is a test for SuperUser.com. This is 
a test for SuperUser.com. This is
a test for
SuperUser.com. This is a test 
for SuperUser.com 

This is a test for SuperUser.com. This is 
a test for SuperUser.com. This 
is
a 
test
for SuperUser.com. This is a test for SuperUser.com

然后,使用(例如键盘)快捷键,该工具应将其转换为:

这是针对 SuperUser.com 的测试。这是针对 SuperUser.com 的测试。这是针对 SuperUser.com 的测试。这是针对 SuperUser.com 的测试。这是针对 SuperUser.com 的测试

这是针对 SuperUser.com 的测试。这是针对 SuperUser.com 的测试。这是针对 SuperUser.com 的测试。这是针对 SuperUser.com 的测试。这是针对 SuperUser.com 的测试

提前致谢!

答案1

不是浏览器,不是跨平台,但对某些人来说可能有用:

Mac OS X 的 TextMate 有命令编辑 » 取消段落/选择Ctrl-Opt-Q)正是出于这个目的。


EmacsM-q为此目的,你可能需要分配一个宽度大于默认宽度


使用以下 Python 脚本(在 OS X 上编写,但跨平台):

#!/usr/bin/env python
import sys

current = "\n"
for line in sys.stdin:
    if line != "\n":
        sys.stdout.write(current[:-1])
    else:
        print "\n"
    current = line
print current[:-1]

像这样调用:

cat test.txt | ./rewrap.py

在 Mac OS X 上,创建一个服务使用Automator任何应用程序接收文本作为输入和替换选定的文本. 添加运行 Shell 脚本将输入传递给stdin并调用上述 Python 脚本的操作。为任何应用程序分配一个全局键盘快捷键系统偏好设置 » 键盘

替代文本

答案2

查看 Binary Fortress Software 的 Clipboard Fusion。我已将其设置为,每当我从某些应用程序(Adobe Reader)复制文本时,复制的文本都会自动删除换行符。非常有用。

答案3

(G)Vim可以这样做。例如,将其放入你的 .vimrc 中:

vnoremap <F5> :s/\s*\n\s*\n\s*/<<mybreak>>/g<CR>gvJgv:s/<<mybreak>>/\r\r/g<CR>

这将分配键F5(您可以使用任何您想要的键;使用 vim,您可以根据需要自定义所有的键映射)来执行以下所有操作:在“可视模式”下(即,当选择了一块文本时),用占位符替换选定文本中的所有换行符,后跟一行,只有空格,后面跟着另一个换行符,<<mybreak>>重新突出显示相同的部分并合并所有行,将行之间的所有空格减少为一个空格,重新突出显示相同的部分并<<mybreak>>用两个换行符替换占位符以恢复段落分隔符。

当然,除了 之外你不需要记住任何东西F5

实际上,在 vim 中可能有一个更简单的方法可以做到这一点。我的 vim 技能与其他人相比微不足道;这只是我想到的办法。

你能在浏览器中使用它吗:可能不能直接使用,但可以使用 Firefox 插件,例如毒蛇或者五指允许您在 vim(或您选择的任何其他文本编辑器)中编辑所有 webfields,这样您也可以在那里使用它。

答案4

使用自动热键(开源):

此代码将允许您复制到剪贴板(使用 CTRL+ALT+C *)并解开它(准备粘贴)。就像正常的粘贴一样,它将在段落之间保留空行。

!^+c::                 ;copy + unwrap but keep the empty lines
clipboard =
Send, {CTRLDOWN}c{CTRLUP}{ESC}
ClipWait
NewStr := RegExReplace(Clipboard, "([^\r\n])\R([^\r\n])", "$1$2")
clipboard = %NewStr%
ClipWait
return
  • 只需更改第一行,您就可以通过任意键来更改快捷方式。

相关内容