Несколько буферов обмена в Linux

    Захотелось сделать так, чтобы можно было сохранять хоткеями выделенный текст в несколько разных буферов обмена. А потом также хоткеями вставлять текст оттуда..

    Для этого нам понадобятся xsel и xbindkeys:

    sudo apt-get install xsel xbindkeys


    Затем создаем скрипт, который будет сохранять выделенный текст в файлы (clip-1, clip-2, и т.д.) либо доставать текст из файлов в буфер обмена и нажимать Ctrl+V

    gedit ~/bin/st-clip


    Содержание файла:

    #!/bin/bash

    if [[ $# -lt 2 ]]; then
      echo "Usage: $0 (save|load) NUM"
      exit 1
    fi

    op=$1
    num=$2

    DIR=$HOME/.clips
    FILE=$DIR/clip-$num

    if [ ! -e "$DIR" ]
      then
      mkdir -p "$DIR"
      chmod 700 $DIR
    fi

    case "$op" in
      "save" )
        xsel -o > $FILE
        ;;
      "load" )
        cat $FILE | xsel --clipboard -i
        xvkbd -xsendevent -text "\[Control_L]\[v]"
        ;;
      *)
        echo "Wrong operation. Allowed \"save\" and \"load\"."
        exit 1
    esac


    * This source code was highlighted with Source Code Highlighter.



    Делаем скрипт исполняемым:

    chmod +x ~/bin/st-clip


    Скрипт принимает два аргумента:
    1. save или load — сохраняем буфер обмена или заружаем его
    2. любое число для сохранения в разные файлы



    Добавляем в файл настроек xbindkeys:

    gedit ~/.xbindkeysrc


    «st-clip save 1»
    Control + Alt + 1
    «st-clip load 1»
    Control + Shift + 1

    «st-clip save 2»
    Control + Alt + 2
    «st-clip load 2»
    Control + Shift + 2

    «st-clip save 3»
    Control + Alt + 3
    «st-clip load 3»
    Control + Shift + 3


    Теперь при нажатии Ctrl+Alt+1..3 выделенный текст сохраняется под разными номерами (1..3), а при нажатии Ctrl+Shift+1..3 соответственно вставляется сохраненный текст под номером 1..3

    Надеюсь кому-то еще может пригодится :)
    Поделиться публикацией

    Комментарии 6

      0
      кстати довольно полезная штука! По работе нередко приходится работать с несколькими однотипными кусками текста
        0
        мне кажется ловчее было-бы так:
        вести историю буфера (скажем 40 штук), забивать обычным хоткеем ctrl+c. Для вставки использовать ctrl+v, только для начала выводить простую менюшку со всей историей (ес-но сокращенно)
          +1
          Софтинка klipper для kde ведет лог буфера(ов) обмена, а также позволяет из объеденить.
            0
            Угу, в своё время ещё на винде опробовал кучу разных менеджеров буфера обмена, там куча всяких вариантов было. В итоге, пришёл к тому, что самый удобный вариант — история буфера, вызываемая по горячей клавише.

            klipper ещё и искать по ней умеет (вызываем историю, и начинаем вводить искомый текст, история сразу же фильтруется).

            И для большего удобства использую большую историю (в 200-1000 элементов).
              0
              А для винды какой был самый удобный менеджер?
                0
                Ой, ну и некровопрос же. Посмотрите на дату сообщения. Я названий точно никаких не вспомню. Но тогда стремился софт использовать только легально, так что использовал фриварное. Перебрал кучу разных вариантов с выплывающими панелями-карманами для текста, с несколькими буферами на горячих клавишах и так далее. Понял, что всё это ерунда. Ну, если человеку нужны часто шаблонные тексты (для ответов, например), то такое и может пригодиться, но такие задачи должны решать несколько иные инструменты.

                Для себя понял, что я не знаю, когда мне понадобится скопированный текст и понадобится ли вообще. Но было бы неплохо легко вернуться к какому-то пункту в недавней истории (или найти в ней). Собственно, подобная бесплатная утилита была найдена, но это было что-то с чем-то. Она, конечно, работала и для неё даже были плагины, но многое там приходилось настраивать в конфигурационных файлах, автор был не то китайцем, ни то японцем, на домашней странице вообще ногу сломаешь. Но это было очень давно где-то 2005 год.

                Сейчас везде использую Linux, где kde — там klipper, в других случаях — clipit. Ну и win+h — волшебная комбинация настроена везде на показ истории буфера.

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.