Como copio todo o histórico da área de transferência para um arquivo de texto?

9

Eu gostaria de colar todo o histórico da minha área de transferência com palavras copiadas (Ctrl + C / por seleção) durante minhas sessões de leitura. Eu instalei programas como o Glippy e o ClipIt, mas não consegui descobrir como colar todas as palavras, se existe uma dessas opções nesses programas, copio para um arquivo de texto simples de uma só vez, não uma palavra por vez. Alguém pode me ajudar?

Obrigado!

    
por pandisvezia 17.01.2012 / 11:28

6 respostas

3

existe um script python para o ClipIt execute-o assim 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
    
por Stepan Shamaiev 26.03.2014 / 11:00
2

Você pode ver algumas seqüências no arquivo de histórico clipit com este comando:

strings ~/.local/share/clipit/history

Mas não é o melhor caminho. A saída pode ficar confusa.

    
por Narcélio Filho 18.10.2012 / 02:16
1

A versão mais recente do Parcellite tem um item de menu Salvar como ao clicar no ícone. Isso salvará todas as entradas do histórico em um arquivo. Há também um colar tudo quando clicar com o botão direito do mouse na lista de histórico, que colocará toda a lista de histórico na área de transferência. As preferências têm um delimitador Paste All que será colocado no final de cada entrada.

link ppa aqui: link

    
por rickyrockrat 17.01.2013 / 13:11
1

Instale Gerenciador de Área de Transferência do Klipper do KDE e use o seguinte script simples:

text="nothing yet"
cnt=0
while [ "$text" != "" ]; do
  text='qdbus org.kde.klipper /klipper getClipboardHistoryItem $cnt'
  echo "==== Clipboard content line $cnt:"
  echo "$text"                      # to terminal output
  echo "$text" > /path/to/file      # to file (EDIT this)
  cnt=$((cnt + 1))
done

Nota: Isso não se comporta muito bem no Unity, pelo que parece. Assim, em outros ambientes de área de trabalho que o KDE: sua milhagem pode variar .

    
por gertvdijk 17.01.2013 / 13:26
0

usuário Parcellite, clique com o botão esquerdo em seu ícone, "clear", selecione quantas vezes você quiser, depois disso, "edite clipboard" e copie tudo! Lembre-se de definir a preferência: use a seleção principal para facilitar a cópia do texto!

    
por Aquarius Power 20.09.2012 / 02:08
0

Código modificado de @ stepan-shamaiev para Python 3 e sem configuração de separador:

#!/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('------------------')
    
por Vitaly Zdanevich 11.06.2017 / 12:01