如何将剪贴板的整个历史记录复制到文本文件?

如何将剪贴板的整个历史记录复制到文本文件?

我想粘贴我在阅读期间复制的单词(Ctrl+C/按选择)的整个剪贴板历史记录。我安装了 Glippy 和 ClipIt 等程序,但我不知道如何粘贴所有单词,如果这些程序中有这样的选项,我会一次复制到一个简单的文本文件中,而不是一次一个单词。有人能帮我吗?

谢谢你!

答案1

你可以使用以下命令查看 clipit 历史文件中的一些字符串:

strings ~/.local/share/clipit/history

但这不是最好的方法。输出可能会出现乱码。

答案2

ClipIt 有一个 Python 脚本,像这样运行它python cliphist.py > clipit.history.txt

#!/usr/bin/env python
"""cliphist.py: utility to print clipit history file.
If an argument is passed on the command line, it will
be used as a separator, otherwise history items are
separated by a blank line. """

import struct, os, sys

homedir  = os.environ['HOME']
histfile = homedir + '/.local/share/clipit/history'
if len(sys.argv) > 1:
    sep = sys.argv[1]
else:
    sep = '---------------------------------------------------------------------'


with open(histfile,'rb') as f:
    f.read(68)
    size,_ = struct.unpack('2i',f.read(8))
    while (size > 0):
        item = f.read(size)
        print item
        _,_,_,size,_ = struct.unpack('5i',f.read(20))
        if size > 0: 
            print sep

答案3

单击图标时,最新版本的 Parcellite 有一个另存为菜单项。这会将所有历史记录条目保存到一个文件中。右键单击历史记录列表时,还有一个粘贴全部选项,这会将整个历史记录列表放在剪贴板上。首选项中有一个粘贴全部分隔符,它会将其放在每个条目的末尾。

https://sourceforge.net/projects/parcellite/files/parcellite/parcellite-1.1.1/ ppa 在这里: https://launchpad.net/~rickyrockrat/+archive/ppa

答案4

修改后的代码@stepan-shamaiev 设置Python 3或不设置分隔符:

#!/usr/bin/env python3
"""cliphist.py: utility to print clipit history file."""

import struct, os

homedir  = os.environ['HOME']
histfile = homedir + '/.local/share/clipit/history'

with open(histfile,'rb') as f:
  f.read(68)
  size, _ = struct.unpack('2i', f.read(8))
  while size > 0:
    item = f.read(size)
    print(item.decode())
    _,_,_,size,_ = struct.unpack('5i',f.read(20))
    if size > 0: 
      print('------------------')

相关内容