我收集了一些小文本文件,我经常想将它们全部复制到电子邮件等中。理想情况下,我想在这些小文本文件的右键菜单中添加一个选项,将文件的全部内容复制到剪贴板以供粘贴。
或者有没有什么更智能的小工具可以管理这些片段?它必须是可以将文本粘贴到任意文本框中的东西:在 Firefox、Thunderbird、Emacs 中……
有这样的工具吗?
答案1
您可以编写一个小型 perl 脚本,如我下面发布的脚本,并将其作为鹦鹉螺脚本。
它的工作原理如下:
- 标记文件在鹦鹉螺中
- 右击上下文菜单
- 点击“脚本”然后进入上下文菜单单击脚本名称(在我的情况下,名称是“contents2clipboard”)。
现在所有文件的内容都在剪贴板中,可以粘贴到文本编辑器或任何其他应用程序中。
要使用脚本,请将其复制到~/.gnome2/nautilus-scripts
目录中的新文件中。文件的名称将是 nautilus 的“脚本”菜单中相应条目的文本。在我的例子中,名称是‘contents2clipboard’。
以下是屏幕截图:
以下是非常基本的脚本:
#!/usr/bin/perl
# indent-mode: spaces, tabsize: 4, encoding: utf8
#
# © 2011 [email protected]. Use under the MIT license:
# http://www.opensource.org/licenses/mit-license.php
#
# This nautilus script copies the content of the selected files
#+into the clipboard. Nautlis scripts are usually located in
#+'$HOME/.gnome2/nautilus-scripts' and need to be executable.
# Gtk2 stuff
use Glib qw/TRUE FALSE/;
use Gtk2 '-init';
use utf8;
# Get files list
@files = split( "\n", $ENV{'NAUTILUS_SCRIPT_SELECTED_FILE_PATHS'} );
$content = '';
# read content of files in list
foreach $path (@files) {
if( -T $path ) {
open FILE, "<$path";
$content .= do { local $/; <FILE> };
close(FILE);
}
}
# Copy content to clipboard
$clipboard = Gtk2::Clipboard->get(Gtk2::Gdk->SELECTION_CLIPBOARD);
$clipboard->set_text($content);
Gtk2->main;
事实上,它有一些你可能需要修复的怪癖:
NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
由于处理方式的原因,它不适用于远程文件系统。- 它不检查所提供文件的大小。因此,过大的文件可能会带来麻烦。
不知道这是否适合您的需求。如果是的话:尽情享受吧!(并标记回答)
答案2
我正在使用 xfce4-clipman 剪贴板管理器,它完全满足您的要求。我已将其设置为每当我将 URL 复制到剪贴板时,都会出现一个小菜单,然后我可以选择相应的内容。
apt-get install xfce4-clipman xfce4-clipman-plugin
将插件安装到面板后,找到属性窗口,您可以在其中使用正则表达式配置触发器。它预装了一个适用于图像的示例。对于每个正则表达式触发器,您可以编辑操作或命令列表。在我的情况下,它们通常是“cat”命令,用于复制到选定文件中,以供我稍后下载。
这些操作或命令成为小选择器菜单上的条目,每次将与正则表达式匹配的内容复制到剪贴板时都会出现这些条目。
答案3
几年前我转用 Linux 时,真的很怀念剪贴板管理器。KDE 中的剪贴板管理器相当不错,但我已经转用 Gnome。我尝试过 Glipper 和 Parcelite,但发现它们没有我想要的。
我决定自己尝试用 Python 和 pyGTK 写一个。它进展顺利,并且具有我想要但找不到的功能:片段,带有历史菜单中的类别、标签和图标。片段(或剪辑)的可选标题。自动将剪贴板内容附加到剪辑。创建新剪辑。将文件加载到剪辑中。将剪辑保存到文件。
简单的插件架构允许通过用 Python 编写来添加额外的功能。我目前有插件可以:删除空行。将剪辑类别转储到文件。通过电子邮件发送剪辑。将剪辑分解为多个剪辑。在浏览器中打开剪辑中的 URL。在 PasteBin 上发布剪辑。通过正则表达式删除文本。删除 HTML-XML 标签。删除前导字符。删除行号。缩短 URL。
数据保存在 SQLite 数据库中,因此每个剪辑/片段都具有创建日期、最后使用、使用时间、标题、来源和注释等属性。
虽然它远非完美,但即使在现阶段的发展中,我发现它非常有用。
答案4
我使用 Firefox 的 Clippings Extention 和 Thunderbird 的 QuickText Extention。
https://addons.mozilla.org/en-US/firefox/addon/clippings/
https://addons.mozilla.org/en-US/thunderbird/addon/quicktext/