Comment copier tout l'historique du presse-papiers dans un fichier texte?

10

Je voudrais coller tout mon historique du presse-papiers composé de mots copiés (Ctrl + C / par sélection) lors de mes séances de lecture. J'ai installé des programmes comme Glippy et ClipIt mais je ne savais pas comment coller tous les mots, si jamais une telle option existe dans ces programmes, je copie dans un fichier texte simple à la fois, pas un mot à la fois. Est-ce que quelqu'un peut m'aider?

Je vous remercie!

pandisvezia
la source
clipit stocke son historique dans ~ / .local / share / clipit / history, le format a des caractères de contrôle, vous pouvez probablement les analyser sed, mais c'est un peu compliqué
bartekbrak

Réponses:

5

Vous pouvez voir quelques chaînes dans le fichier historique de clipit avec cette commande:

strings ~/.local/share/clipit/history

Mais ce n'est pas la meilleure façon. La sortie peut être tronquée.

Narcélio Filho
la source
3

il y a un script python pour ClipIt exécutez-le comme ceci 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
Stepan
la source
n'ont pas essayé cela, mais il semble correct et répond à la question (concernant Clipit)
user7610
2

La dernière version de Parcellite dispose d'un élément de menu Enregistrer sous lorsque vous cliquez sur l'icône. Cela enregistrera toutes les entrées d'historique dans un fichier. Il y a aussi un tout coller lorsque vous cliquez avec le bouton droit sur la liste d'historique, ce qui placera toute la liste d'historique dans le presse-papiers. Les préférences ont un délimiteur Coller tout qu'il mettra à la fin de chaque entrée.

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

rickyrockrat
la source
1

Installez Klipper Clipboard Manager de KDE Installer Klipper et utilisez le script simple suivant:

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

Remarque: Cela ne se comporte pas très bien dans Unity, semble-t-il. Donc, dans d'autres environnements de bureau que KDE: votre kilométrage peut varier .

gertvdijk
la source
FWIW, quelqu'un ayant des problèmes avec Klipper et Unity: askubuntu.com/questions/439303/…
Sparhawk
0

utilisateur Parcellite, faites un clic gauche sur son icône, "effacer", sélectionnez le nombre de fois que vous voulez, après cela, "éditez le presse-papiers" et copiez le tout! N'oubliez pas de définir une préférence: utilisez la sélection principale pour faciliter la copie du texte!

Puissance du Verseau
la source
Salut Acquarius! Merci beaucoup pour la réponse. Cependant, lorsque je clique sur Modifier le presse-papiers, je ne vois que le dernier mot que j'ai copié et non la liste entière. Peut-être qu'avec vous, cela fonctionne d'une autre manière? Peut-être que je dois configurer quelque chose dans les préférences.
pandisvezia
il y a ce fichier ~ / .local / share / parcellite / history, le problème est qu'il a des caractères non imprimables à la nouvelle ligne et autres .. vous pouvez essayer de les remplacer automatiquement / les effacer mais maintenant cela commence à devenir désordonné ...
Aquarius Power
0

Code modifié de @ stepan-shamaiev pour Python 3et sans paramétrage du séparateur:

#!/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('------------------')
Vitaly Zdanevich
la source