Буфер обмена консоли linux

_ БУФЕР ОБМЕНА _ В LINUX

БУФЕР ОБМЕНА В LINUX

Часто можно услышать вопросы пользователей альтернативных операционных систем: а буфер обмена в Linux есть? Конечно, есть. Даже два! И для них есть менеджеры буфера обмена : намного удобней иметь возможность вставить из буфера кусок кода, который часто используется, чем по сто раз его копировать из другого текста. Вот о них в этом посте и поговорим.

Буферы обмена в Linux.

Итак, в Linux буфер обмена есть, и даже не один. В графической оболочке X.org их целых два.
Первый буфер обмена (clipboard) работает так же, как и буфер обмена в Windows: выделяем картинку или текст и нажимаем Ctrl+Insert или Ctrl+C для копирования в буфер обмена. Вставка происходит после нажатия комбинации Shift+Insert или Ctrl+V .
Второй буфер обмена (primary) в Linux работает иначе. Если вы выделяете текст мышью, выделенный текст сразу попадает в буфер primary. Чтобы вставить скопированный текст, достаточно нажать среднюю кнопку мышки (колёсико). Если трёхкнопочной мыши у вас нет или вы работаете на ноутбуке с тачпадом, для вставки текста можно одновременно нажать левую и правую кнопки мыши.
Эти буферы обмена не связаны друг с другом, и хранящиеся в них данные не влияют друг на друга. Однако если вы скопируете другой кусок текста или картинку, новое содержимое затрёт собой предыдущее, и вы потеряете данные в буфере обмена.

Менеджеры буферов обмена в Linux.

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

Буфер обмена в консоли .

Даже если вы работаете в Linux в голой консоли, буфер обмена у вас всё равно будет. Достаточно установить пакет gpm (general purpose mouse) и вы сможете копировать и вставлять текст выделением и колёсиком мыши.
Для управления содержимым буфера обмена есть консольная программа xclip . Копирование и вставка текста в xclip выполняется простыми командами, что позволяет использовать её в скриптах, примеры которых можно посмотреть в этом посте.При возникновении проблем с копированием файлов в KDE, вместо xclip можно использовать xsel .

Буфер обмена в графической среде.

Среди программ для управления содержимым буфера обмена можно выделить две :
Parcellite — менеджер буфера обмена на GTK для среды GNOMEklipper — менеджер буфера обмена для среды KDE. Несколько слов о Parcellite и Klipper далее.

Менеджер буфера обмена Parcellite.

На смену уже не подающему признаки жизни glipper приходит parcellite, который довольно активно развивается, может работать как демон и поддерживает действия с буфером обмена. Надо отметить, что Parcellite замечательно работает и в IceWM .

Установка parcellite проста:
aptitude install parcellite

занимает очень мало места (меньше мегабайта). После запуска командой parcellite в трее появится иконка:Всё очень просто и скромно: нажав на правой кнопкой мыши по значку в трее, можно настроить параметры, а нажав левой – редатировать или очистить содержимое буфера обмена (показано полупрозрачным).
Настраиваемых параметров вполне достаточно: так, например, можно задать число хранимых состояний буфера обмена (25 в данном примере) или хранение только гиперссылок.Parcellite так же поддерживает задание регулярных выражений (regular expressions) – это вкладка Actions:
В общем, вполне функциональный и простой в использовании менеджер буфера обмена в Linux, который понравится не только гномоводам.

Менеджер буфера обмена Klipper.

Для среды KDE есть свой менеджер буфера обмена, который называется Klipper . Доступный в любом современном дистрибутиве.

Klipper устанавливается просто:
aptitude install klipper

пакет занимает чуть менее 1Мб, так что не жадничаем и ставим. Работать будет не только в KDE, но и в IceWM, на радость многим лихачам, оный использующим.
После запуска в трее появляется значок Klipper, нажатие на который выдаёт меню с настройками:А настроек тут хватает:Перечислю только основные:
Save clipboard contents on exit — сохраняем содержимое буфера обмена Linux при выходе из Klipper.Remove whitespace when executing actions — удалять пробелы перед или после содержимого буфера обмена, что полезно, если вы ввели URL в буфер обмена с пробелами.Clipboard selection behavior — игнорировать выделение, то есть не смешивать буфер обмена clipboard и primary.
Ну и конечно, можно настроить размер истории буфера обмена (Clipboard history size). Можно так же задавать регулярные выражения (regular expressions) и связывать их с Klipper:Относительно Actions, настройка которых показана выше: вообще весьма удобная фукнция. Вот, например, вы выделяете в текстовом редакторе кусочек текста, который является веб-ссылкой. Если включены Actions в Klipper, то вылезет симпатичное всплывающее окошко, которое может сразу вставить эту ссылку в ваш любимый браузер. На скриншоте подсвечен процесс работы Actions:
Ну и настроить горячие клавиши на всё, что только можно:

Заключение.

Есть и другие утилиты управления содержимым буфера обмена в Linux, но для начала стоит посмотреть на xclip , xsel, klipper и parcellite . Для среды XFce есть плагин под названием Clipman . Утилиты буфера обмена существенно облегчают жизнь при работе с буфером обмена. И теперь вы уж точно ничего не потеряете!

Установить также можно и в «МЕНЕДЖЕРЕ ПРОГРАММ» .

Источник

Читайте также:  Дизайн windows 10 2021

Работа с буфером обмена в Linux: теория и практика

Совсем немного теории

Исторически сложилось так, что в X Window System (X11, — оконная система для Linux, UNIX) существует два буфера обмена.

Один из них (clipboard) похож на буфер обмена в Windows — при нажатии на Ctrl+Insert или Ctrl+C выделенный фрагмент (текст, картинка, файл) копируется в буфер обмена, а при нажатии на Shift+Insert (или Ctrl+V) — вставляется из него. Следует заметить, что во многих программах эти сочетания зарезервированы для иных целей и приходится пользоваться другими — например, в терминале сочетание Ctrl+C используется для завершения процесса, а для работы с буфером обмена используются сочетания Ctrl+Shift+C для копирования и Ctrl+Shift+V для вставки.

Второй буфер (primary) является специфичным для оконной системы X11. Выделенный текст незамедлительно попадает в буфер primary, и для того, чтобы вставить скопированный текст, достаточно лишь нажать среднюю кнопку мышки (колёсико). У кого в наличии не имеется трёхкнопочной мышки, а так же владельцам ноутбуков с тачпадами следует одновременно нажать левую и правую кнопки мышки для вставки текста.

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

Практика

Для решения проблемы утери данных из буфера обмена при закрытии программы существует сторонний софт. Например, Clipboard Daemon. Этот маленький демон держит содержимое буфера обмена в памяти независимо от того, было ли закрыто приложение, из которого скопированы данные.

Читайте также:  Windows microsoft downloads languages

Для более комфортной работы с буфером обмена существует целый ряд программ:

  • Parcellite — многообещаюший менеджер буфера обмена на GTK
  • glipper — для Gnome
  • klipper — для KDE
  • wmcliphist — для Window Maker
  • и куча других (в том числе для Windows, Mac OS и прочего).

Эти программы позволяют существенно облегчить работу — они хранят историю содержимого буферов обмена — в любой момент можно вернуться к любому из предыдущих состояний (в пределах разумного, конечно, — этот предел, как водится, устанавливается в настройках) и воспользоваться им =)

Существует так же весьма и весьма полезная в умелых руках утилита под названием xclip, предназначенная для работы с буферами обмена из командной строки. Копирование и вставка текста осуществляется простыми командами, что позволяет использовать её в различного рода вспомогательных скриптах, примеры которых я продемонстрирую ниже.

К сожалению, официальная версия xclip у меня с кириллицей корректно не заработала, несмотря на то, что я собирал последнюю версию. Поэтому я предлагаю скачать и собрать версию xclip для дистрибутива Alt Linux.

Скрипты

xclip -o | sed -n 1p | xargs firefox -new-tab

Он открывает новую вкладку в Firefox с адресом, который находится в буфере обмена (очень часто нужно открыть ссылку в виде простого текста — например, если ссылка встретилась в текстовом редакторе — приходится её копировать, открывать вкладку в браузере и вставлять скопированный адрес. Скрипт делает всё за вас ;). Я назначил его на сочетание Win+F.

Благодаря тому, что буфер обмена является универсальной для ОС сущностью, эти скрипты будет работать везде — от терминала и текстового редактора до самого Firefox’а (впрочем, желающие могут настроить этот же скрипт и для альтернативных браузеров. Назначить скриптам сочетание кнопок можно как с помощью вашего windows manager’а (например, gconf-editor для Gnome), так и с помощью сторонних программ, таких как xmodmap или actkbd.

Что дальше?

Да что угодно =) Можно переводить фразы, выделенные мышкой, можно копировать их в программу для заметок — всё зависит от вашей фантазии и потребностей. Конечно, для таких вещей могут существовать отдельные программы, но такие вот самописные скрипты, на мой взгляд, для любого пользователя окажутся удобнее всего — linux тем и хорош, что можно всё, абсолютно всё настроить под себя и для себя.

Update: добавлена ссылка на менеджер буфера обмена Parcellite — спасибо хабрапользователю drujebober

Update 2: по просьбе хабраюзера dimaka добавил скрипты для перевода:

+ ! t t
f Copy full filename into clipboard
echo -n %d/%f | xclip

_________
Текст подготовлен в редакторе VIM 😉

Источник

xclip: управление буфером обмена из командной строки

El буфер обмена o буфер обмена это инструмент, который X-сервер нашей операционной системы предлагает нам для обмена информацией между приложениями.

Он отвечает за повторяющиеся операции, такие как вырезать, copiar y подобрать. Он представляет собой своего рода хранилище или буфер, где приложения могут хранить данные, чтобы их можно было использовать позже тем же или другими приложениями.

В общем, все мы знаем, как использовать его с точки зрения пользователя, либо через меню приложения, либо с помощью сочетаний клавиш, обычно:

  • Ctrl + X вырезать
  • Ctrl + C Скопируйте
  • Ctrl + V Поймать

Однако что происходит, когда мы хотим использовать буфер обмена из скрипт?

Xclip

Xclip это приложение, которое позволяет нам вводить текст в буфер обмена и извлекать из него текст из командной строки. Полученный текст мог быть введен любым другим приложением.

Читайте также:  Open mdf in linux

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

Эль Пакет Xclip его можно найти в репозиториях большинства дистрибутивов. Например, в Ubuntu для его установки не требуется больше, чем apt-get:

$ sudo apt-get install xclip

Его основное использование очень простое. Чтобы ввести стандартный вводимый текст в буфер обмена, необходимо указать опцию -i:

$ echo «Hola mundo» | xclip -i

Текст «Hello world» станет доступен для остальных приложений. Аналогичным образом, чтобы получить текст из буфера обмена и отправить его на стандартный вывод, необходимо указать параметр -o:

выборы

Буфер обмена предлагает нам три буфера или выборы разные:

  • ОСНОВНОЙ: Это буфер по умолчанию. Он сохраняет текст, просто отмечая его курсором, без необходимости нажимать комбинацию клавиш или какой-либо параметр в меню.
  • ДОСКА ОБЪЕКТОВ: Этот буфер чаще всего используется приложениями. Он сохраняет текст, выделенный курсором, только после того, как вы нажали комбинацию клавиш или пункт меню для вырезания или копирования.
  • СРЕДНЯЯ: Это вспомогательный и независимый буфер. Он полностью доступен, но редко используется приложениями как стандарт. Он используется только для особых целей.

Xclip может управлять всеми тремя буферами. Необходимо только указать, какой из них мы хотим использовать, через опцию -выбор и первая буква имени буфера. По умолчанию используется буфер ОСНОВНОЙ.

Например, чтобы получить текст, вырезанный в другом приложении, мы должны указать, что мы хотим, чтобы выводимое содержимое буфера ДОСКА ОБЪЕКТОВ, с опциями -o y -выбор c

$ xclip -o -selection c
Texto cortado en gedit

Практическое применение

Инструмент Xclip предлагает множество возможностей. В основном это полезно в скрипты, где у нас нет возможности использовать сочетания клавиш, поскольку процессы выполняются автономно.

Возьмем пример: представим, что мы хотим иметь возможность искать любое слово, которое появляется в любом приложении или на веб-странице в WordReference чтобы перевести его на английский или с английского всего одним нажатием клавиши.

Во-первых, мы должны выяснить формат URL-адреса, с которым параметры передаются на целевой веб-сайт. В данном случае это следующее:

Как только мы это узнаем, нам просто нужно создать скрипт вы открываете этот URL, например, Firefox, заменяя СЛОВО эквивалентным кодом, который возвращает нам текст, найденный в буфере обмена.

Назовем его, например, wordreference.sh, и он будет содержать следующее:
#!/bin/bash
firefox http://www.wordreference.com/es/translation.asp?tranword=$(xclip -o)

Наконец, как только мы сохранили наши скрипт и мы дали разрешения на выполнение, мы должны связать его с сочетанием клавиш в нашем диспетчере рабочего стола. Например, присваиваем комбинацию Ctrl + G . И он у нас готов.

Осталось только использовать это. Мы отмечаем курсором любое слово, которое хотим перевести и нажимаем Ctrl + G . Мы увидим, как без лишних слов браузер откроется со страницей, соответствующей переводу отмеченного слова.

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

Кроме того, этот же метод можно использовать для вызова любой другой веб-страницы, например Google, Википедия или другой сайт, который позволяет нам выполнять поиск или открывать приложения, требующие параметров в вашем вызове.

Еще приложения? Что подсказывает воображение.

Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Полный путь к статье: Из Linux » Учебники / Руководства / Советы » xclip: управление буфером обмена из командной строки

Источник

Оцените статью