右键复制文件内容到剪贴板

右键复制文件内容到剪贴板

我收集了一些小文本文件,我经常想将它们全部复制到电子邮件等中。理想情况下,我想在这些小文本文件的右键菜单中添加一个选项,将文件的全部内容复制到剪贴板以供粘贴。

或者有没有什么更智能的小工具可以管理这些片段?它必须是可以将文本粘贴到任意文本框中的东西:在 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/

相关内容