Clipit: скопировать весь буфер обмена

Созданный на 16 февр. 2012  ·  8Комментарии  ·  Источник: CristianHenzel/ClipIt

хорошая функция, которая отсутствует, - это возможность скопировать весь буфер обмена, все строки, потому что файл истории не очень удобен без программы для его анализа (возможно, у вас есть сценарий для удаления лишних символов и анализа файла)
Я хорошо вижу новую клавишу ctrl alt +, которая копирует все строки в новую строку. это предотвращает использование файла истории.

Самый полезный комментарий

Очень полезно иметь легкий доступ к истории. Вот утилита, которую я написал на Python. Это работает в Ubuntu. В других системах расположение файла истории может быть другим.

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

Все 8 Комментарий

Привет,

не могли бы вы развить идею? Я не совсем уверен, что вы имеете в виду, возможно, вы также могли бы привести пример того, что _ точно_ вы хотите / должны делать, чтобы я мог лучше понять ваш вариант использования.

Привет ,
Я хотел бы иметь возможность копировать весь файл истории. это может быть полезно, если я выберу много текстовых блоков для копирования в clipit и хочу обработать копии после.
И файл истории использовать для этого непросто.
Итак, я хорошо вижу вариант, который копирует весь файл истории (а затем все строки) в новую строку. мы можем вставить эту строку (новую копию) и получить весь файл истории (а затем все предыдущие копии). горячая клавиша для этого будет еще лучше.

Эта идея соответствует и моему мышлению. Я был бы очень признателен за эту функцию, которую я называю множеством вкусов. Было бы неплохо иметь возможность копировать более одного ввода, и, наконец, я предпочитаю, чтобы результат вывода был в следующем формате:

вставить 1
пустая строка
паста 2
пустая строка
и т.п.

Это действительно полезно, когда я читаю книги и пытаюсь ухватить важные строки! Возможно ли это сделать?

Я тоже довольно часто скучаю по этой функции.

Очень полезно иметь легкий доступ к истории. Вот утилита, которую я написал на Python. Это работает в Ubuntu. В других системах расположение файла истории может быть другим.

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

Круто, у меня это работает в командной строке. Как я могу использовать это для прямой вставки в работающую программу?

Если я вас правильно понял, вы можете направить вывод cliphist.py в команду clipit (чтобы сделать его единственной записью в истории), а затем вставить его, как обычно, в другую программу.

$ cliphist.py | clipit

@davidsands хороший сценарий

я добавляю его в свой bashrc:
псевдоним clipit.history = 'python2 /home/emmanuelux/scripts/cliphist.py'
псевдоним clipit.history.copy = 'clipit.history | clipit '

Была ли эта страница полезной?
0 / 5 - 0 рейтинги