我正在寻找一种工具,可以让我轻松地重新换行,即从文本选择或文本字段中删除换行符(但不删除空行)的工具,适用于 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
- 只需更改第一行,您就可以通过任意键来更改快捷方式。