Panodaki tüm geçmişi bir metin dosyasına nasıl kopyalarım?


10

Okuma oturumlarım sırasında kopyalanan (Ctrl + C / seçime göre) kelimelerden oluşan tüm pano geçmişimi yapıştırmak istiyorum. Glippy ve ClipIt gibi programlar yükledim ama tüm kelimeleri nasıl yapıştıracağımı anlayamadım, bu programlarda böyle bir seçenek varsa, aynı anda tek bir kelimeye değil, aynı anda basit bir metin dosyasına kopyalarım. Birisi bana yardım edebilir mi?

Teşekkür ederim!


clipit geçmişini ~ / .local / share / clipit / history içinde saklar, biçimin bazı kontrol karakterleri vardır, muhtemelen bunları ayrıştırabilirsiniz sed, ancak bu biraz karmaşıktır
bartekbrak

Yanıtlar:


5

Bu komutla klipit geçmişi dosyasındaki bazı dizeleri görebilirsiniz:

strings ~/.local/share/clipit/history

Ama bu en iyi yol değil. Çıktı bozuk olabilir.


4

ClipIt için python betiği var 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

Bunu denemedim, ancak doğru görünüyor ve soruyu cevaplıyor (Clipit ile ilgili)
user7610

2

Parcellite'nin en son sürümü, simgeyi tıklattığınızda Farklı Kaydet menü öğesine sahiptir. Bu, tüm geçmiş girişlerini bir dosyaya kaydeder. Geçmiş listesini sağ tıklattığınızda, geçmiş listesinin tamamını panoya yerleştirecek bir macun da vardır. Tercihler, her girişin sonuna yerleştireceği Tümünü Yapıştır sınırlayıcısına sahiptir.

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


1

KDE'nin Klipper Clipboard Yöneticisi'ni yükleyin Klipper yükleve aşağıdaki basit komut dosyasını kullanın:

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

Not: Bu, Unity'de çok iyi davranmaz, bu yüzden görünüyor. Yani KDE dışındaki diğer masaüstü ortamlarında: kilometreniz değişebilir .


FWIW, Klipper ve Unity ile sorun yaşayan
Sparhawk

0

kullanıcı Parcellite, simgesine sol tıklayın, "temizle", kaç kez istediğinizi seçin, bundan sonra "pano düzenle" ve hepsini kopyalayın! Ayarlanan tercihi unutmayın: metni kopyalamayı kolaylaştırmak için birincil seçimi kullanın!


Merhaba Acquarius! Yanıt için çok teşekkürler. Ancak, panoya düzenle'yi tıkladığımda listenin tamamını değil yalnızca kopyaladığım son sözcüğü görüyorum. Belki seninle başka bir yolla çalışır? Belki de tercihlerde bir şey yapılandırmalıyım.
pandisvezia

~ / .local / share / parcellite / history dosyası var, sorun satırsonu için yazdırılamayan karakterler var ve böyle .. onları otomatik olarak değiştirmeyi / silmeyi deneyebilirsiniz ama şimdi bu dağınık olmaya başlıyor ...
Aquarius Power

0

Kod Modifiye gelen için @ stepan-shamaiev Python 3ve ayırıcı ayarlamadan:

#!/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('------------------')
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.