许多网页浏览器和电子邮件包裹都要花费很大的力气,去试图保留那些复制到Windows剪贴板中的信息格式。经常地,在这个信息粘贴到其他文件之前需要重新格式化这个信息,因为重新定义格式可以去除一些空格并可以重新组合信息的行数。幸运的是,Win32::Clipboard,这个Perl语言中的模块,可以使得处理Windows剪贴板中的数据简单化。
下面这个Perl程序首先是要确保剪贴板的内容类型是文本,接下来按照以下规则开始处理剪贴板中的内容:
1、把剪贴板中所有的返回(用 表示)都去除掉;
2、移除第一行中所有开头的空格;
3、把空格行和分隔行都标注上返回信息(即 );
4、用简单的一个空格来代替一系列跟随有一个或多个空格的行;
5、存储所有的分隔行。
这有一个例子
use Win32::Clipboard;
tie $CLIP, 'Win32::Clipboard';
die ": Can't convert non-text content " if !tied($CLIP)->IsText;
# eliminate returns from the content
$CLIP =~ s/ //g;
# eliminate leading spaces
$CLIP =~ s/^s+//;
# retain blank lines
$CLIP =~ s/ s*? / /gm;
# collapse all other lines
$CLIP =~ s/ s+?(?=S)/ /gm;
# restore blank lines
$CLIP =~ s/ s*/ /g;
print STDERR "The text in the clipboard has been reflowed ";
为了使用这个程序,需要把它保存成文件,在把数据复制到剪贴板后,但要在将数据粘贴到其它应用程序之前,运行这个文件。
如果剪切和粘贴是你日常工作的一部分,这个工具在移除行中的起始空格和恢复段落中的文本时所节省的时间是很可观的。