Clipit: copiar todo el portapapeles

Creado en 16 feb. 2012  ·  8Comentarios  ·  Fuente: CristianHenzel/ClipIt

una buena característica que se pierde es una opción para copiar todo el portapapeles, todas las líneas, porque el archivo de historial no es muy útil sin un programa para analizarlo (puede ser que tenga un script para eliminar caracteres adicionales y analizar el archivo)
Veo bien una nueva tecla ctrl alt + que copia todas las líneas en una nueva línea. evita el uso del archivo histórico.

Comentario más útil

Tener fácil acceso al historial es muy útil. Aquí hay una utilidad que escribí en Python. Esto funciona en Ubuntu. En otros sistemas, la ubicación del archivo histórico puede 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 comentarios

Hola,

¿Podrías por favor elaborar la idea? No estoy realmente seguro de lo que quiere decir, tal vez también podría dar un ejemplo de lo que _exactamente_ quiere / necesita hacer, para que pueda comprender mejor su caso de uso.

Hola ,
Me gustaría tener una opción para copiar todo el archivo histórico. puede ser útil si selecciono muchos bloques de texto para copiarlos en clipit y luego deseo procesar las copias.
Y el archivo de historial no es fácil de usar para eso.
Entonces veo bien una opción que copia todo el archivo de historial (y luego todas las líneas) en una nueva línea. después podemos pegar esta línea (nueva copia) y obtener todo el archivo histórico (y luego todas las copias anteriores). una tecla de acceso rápido para esto será aún mejor.

Esta idea se ajusta también a mi pensamiento. Agradecería mucho esta función a la que llamo múltiples gustos. Sería bueno poder copiar más de una entrada y, finalmente, prefiero que el resultado de salida esté en el siguiente formato:

pegar 1
linea vacia
pegar 2
linea vacia
etc.

¡Es realmente útil cuando leo libros y trato de captar las líneas importantes! Es posible de hacer?

Esta es una característica que también echo de menos con bastante frecuencia.

Tener fácil acceso al historial es muy útil. Aquí hay una utilidad que escribí en Python. Esto funciona en Ubuntu. En otros sistemas, la ubicación del archivo histórico puede 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

Genial, tengo esto funcionando en la línea de comandos. ¿Cómo puedo usar eso para pegar directamente en un programa en ejecución?

Si lo entiendo correctamente, puede canalizar la salida de cliphist.py al comando clipit (para convertirlo en una sola entrada del historial), luego pegarlo como de costumbre en el otro programa.

$ cliphist.py | clipit

@davidsands buen guion

lo agrego en mi bashrc:
alias clipit.history = 'python2 /home/emmanuelux/scripts/cliphist.py'
alias clipit.history.copy = 'clipit.history | clipit '

¿Fue útil esta página
0 / 5 - 0 calificaciones