Clipit: copie toda a área de transferência

Criado em 16 fev. 2012  ·  8Comentários  ·  Fonte: CristianHenzel/ClipIt

um bom recurso que falta é uma opção de copiar toda a área de transferência, todas as linhas, porque o arquivo de histórico não é muito utilizável sem um programa para analisá-lo (pode ser que você tenha um script para remover caracteres extras e analisar o arquivo)
vejo bem uma nova tecla ctrl alt + que copia todas as linhas em uma nova linha. impede o uso de arquivo de histórico.

Comentários muito úteis

Ter acesso fácil ao histórico é muito útil. Aqui está um utilitário que escrevi em Python. Isso funciona no Ubuntu. Em outros sistemas, a localização do arquivo de histórico pode ser diferente.

#!/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

Todos 8 comentários

Olá,

você poderia elaborar a ideia? Não tenho certeza do que você quer dizer, talvez você também possa dar um exemplo do que _exatamente_ você deseja / precisa fazer, para que eu possa entender melhor seu caso de uso.

Olá ,
Eu gostaria de ter a opção de copiar todo o arquivo de histórico. pode ser útil se eu selecionar muitos blocos de texto a serem copiados no clipit e desejar processar as cópias depois.
E o arquivo de histórico não é fácil de usar para isso.
Portanto, vejo bem uma opção que copia todo o arquivo de histórico (e, em seguida, todas as linhas) em uma nova linha. podemos depois de colar esta linha (nova cópia) e obter todo o arquivo de histórico (e então todas as cópias anteriores). uma tecla de atalho para isso será ainda melhor.

Essa ideia se encaixa também no meu pensamento. Eu apreciaria muito essa função que chamo de múltiplos gostos. Seria bom poder copiar mais de uma entrada e, finalmente, prefiro que o resultado de saída esteja no seguinte formato:

colar 1
linha vazia
colar 2
linha vazia
etc.

É muito útil quando leio livros e tento captar as linhas importantes! É possível fazer?

Esse é um recurso que também sinto falta com frequência.

Ter acesso fácil ao histórico é muito útil. Aqui está um utilitário que escrevi em Python. Isso funciona no Ubuntu. Em outros sistemas, a localização do arquivo de histórico pode ser diferente.

#!/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

Legal, eu tenho isso funcionando na linha de comando. Como posso usar isso para colar diretamente em um programa em execução?

Se bem entendi, você poderia canalizar a saída de cliphist.py para o comando clipit (para torná-lo uma única entrada de histórico) e, em seguida, colar como de costume no outro programa.

$ cliphist.py | clipit

@davidsands nice script

eu adiciono no meu bashrc:
alias clipit.history = 'python2 /home/emmanuelux/scripts/cliphist.py'
alias clipit.history.copy = 'clipit.history | clipit '

Esta página foi útil?
0 / 5 - 0 avaliações