Linux terminal буфер обмена

Буфер обмена в Linux (копирование и вставка)

Хочу рассказать о некоторых особенностях буфера обмена в Linux. О буфере копирования и про буфер выбора (первичный буфер), а также про копирование и вставку текста в терминале.

Буфер копирования

Стандартно для копирования и вставки объектов в Linux используются сочетания клавиш Ctrl+C и Ctrl+V. При копировании текст (или любой другой объект) в таком случае попадает в обычный буфер копирования. Затем вы можете вставить этот текст в другом месте.

Буфер выбора (первичный буфер)

В Linux существует еще буфер выбора или первичный буфер. Текст, который вы выделяете в любой программе, автоматически попадает в буфер обмена! Это удобно, выделил текст, открыл другое окно и вставил этот кусок текста. Есть некоторые исключения, но они незначительны. Например, у меня в Ubuntu это не работает, если программа использует JVM (Java Virtual Machine).

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

Копирование и вставка в терминале

В терминале для копирования и вставки не работают стандартные сочетания Ctrl+V, Ctrl+C. Это связано с тем, что исторически Ctrl+C это сочетание клавиш для прерывания текущего процесса. Поэтому, для копирования и вставки при работе в терминале используются сочетания Ctrl+Insert и Shift+Insert соответственно. В Gnome терминале и, наверное, во многих других также работают сочетания Shift+Ctrl+C и Shift+Ctrl+V. Они же указаны в главном меню программы в разделе Правка.

Также в терминале работают сочетания клавиш Ctrl+U, чтобы вырезать текст; и Ctrl+Y для вставки текста. Сочетание Ctrl+U работает особенным образом — в буфер копируется вся текущая строка, введенная в терминале, независимо от того, выбрали вы какой-нибудь текст мышкой или нет, а сама строка пропадает с экрана.

Источник

Работа с буфером обмена в 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, и для того, чтобы вставить скопированный текст, достаточно лишь нажать среднюю кнопку мышки (колёсико). У кого в наличии не имеется трёхкнопочной мышки, а так же владельцам ноутбуков с тачпадами следует одновременно нажать левую и правую кнопки мышки для вставки текста.

Читайте также:  Что делать если ноутбук долго запускается windows 10

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

Практика

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

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

  • 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

Читайте также:  Pentium 4 and 64 bit windows

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

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

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

Источник

Лучшие менеджеры буфера обмена Linux

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

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

Лучшие менеджеры буфера обмена Linux

1. CopyQ

Стоит начать с самого продвинутого менеджера буфера обмена для Linux. CopyQ имеет большое количество настроек. Настраивается практически каждый элемент, есть функция шифрования.

Тексты сохраняются с форматированием. Однако, наблюдаются некоторые неточности при вставке фрагментов. Часть форматирования теряется. Изображения сохраняются, HTML код тоже, но опять же, часть элементов отображается не так, как при прямом копировании. Есть удобный просмотр истории (пункт меню «Показать/скрыть»). В нём можно увидеть фрагменты с форматированием и при необходимости закрепить их в истории. Вам разрешено даже менять скопированные тексты. Там же есть поиск для быстрого доступа к нужному фрагменту.

CopyQ будет работать в оболочке GNOME, KDE, Mate, XFCE. С Cinnamon возникли проблемы, утилиты в этом окружении в трей не попадают, а ведь именно оттуда и предоставляется доступ не только к скопированным фрагментам, но и к настройкам программы.

sudo apt install copyq

2. Diodon

Diodon — это более простой менеджер буфера обмена Linux. Он не поддерживает сохранение форматирования текста, но изображения сохраняются. После установки скорее всего потребуется перезагрузить компьютер. Без этого менеджер может не заработать.

Для установки Diodon используйте команду:

sudo apt install diodon

3. Clipman (XFCE)

Для оболочки XFCE вы можете установить менеджер буфера обмена Clipman. Текст сохраняется без форматирования. Есть возможность сохранять изображения.

У менеджера наблюдается серьёзная ошибка. Вместо того, чтобы показать полную историю, открывается меню настроек. Надеемся, что в скором времени этот недостаток будет устранён.

Для установки Clipman воспользуйтесь командой:

sudo apt install xfce4-clipman

4. Clipboard Indicator (GNOME)

Для оболочки GNOME существует расширение Clipboard Indicator. Плюсом является простая интеграция в оболочку. Установку можно провести вручную, но проще всего воспользоваться расширением для браузера и активировать менеджер в один клик. Имеется возможность проводить поиск. Текст сохраняется без форматирования, сохранение изображений не поддерживается.

5. Встроенный менеджер KDE

В оболочку KDE встроен простой менеджер буфера обмена. Он автоматически появляется в трее при копировании текста и вмещает большое количество фрагментов. Вдобавок к этому есть поиск. В остальном функциональность довольно скромная. Текст сохраняется без форматирования. Сохранение изображений не поддерживается.

Выводы

Наиболее универсальным менеджером буфера обмена будет CopyQ. Он заработает на большинстве оболочек, при этом предоставит большой набор функций, превосходящий возможности других программ. Также вас может заинтересовать расширение для GNOME.

Если же на вашей оболочке менеджеры не заработали, то в качестве альтернативы воспользуйтесь расширениями для браузера и других часто используемых программ. Например, для VS Code есть соответствующий плагин.

Читайте также:  Skype mobile app windows mobile

А пользуетесь ли вы менеджером буфера обмена? Какие лучшие менеджеры буфера обмена Linux вы знаете? Расскажите об том в комментариях.

Источник

Linux terminal буфер обмена

В данной статье разберем утилиту xclip, которая позволяет скопировать вывод любой команды или текст любого файла в буфер обмена в терминале Linux.

Этот абзац для тех, кто нашел эту статью в поисковой системе, чтобы узнать как просто копировать и вставлять текст в терминале Linux (в Ubuntu в частности), так как обычные сочетания клавиш CTRL — C и CTRL -V не работают. Для этих действий используются CTRL — SHIFT — C и CTR — SHIFT — V, соответсвтенно.

xclip — утилита для работы с буфером обмена из консоли.

Давайте её установим в Ubuntu:

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

Примеры использования xclip.

Давайте рассмотрим работу xclip на примерах.

Допустим, есть у нас публичный ключ ssh, который мы хотим скопировать и вставить в систему для доступа к ней без ввода пароля:

Не совсем удобно копировать данный текст в терминале, можно ошибиться в пробелах и тд. Поэтому, давайте воспользуемся xclip.

Чтобы скопировать в буфер обмена, перенаправляем вывод любой команды в xlip:

или короткая версия:

Если вы не знаете, что такое |, то это означает, что мы вывод первой команды перенаправляем на вход второй после |.

Для тех, кто хочет узнать про перенаправление потоков вывода, советую прочитать мою статью: Терминал Linux. Как сохранить в файл вывод терминала..

Теперь мы можем вставить скопированный текст куда захотим, к примеру, на сайте github:

Но мы можем просто скопировать в буфер обмена весь текстовый файл, для этого указываем команду xclip с ключом -in (-i):

или короткая версия:

С помощью данной утилиты мы можем и вставить текст в терминал из буфера обмена. Для этого нужно указать команду xclip вместе с ключом -out (-o):

или короткая версия:

Но, согласитесь, что не удобно постоянно набирать параметр -sel clip, который указывать на буфер обмена.

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

Вставляем туда строки:

Если вы не знаете, что такое алиасы, то советую прочитать следующую статью: Терминал Linux. Создание alias (псевдонима) в Ubuntu..

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

Псевдонимы pbcopy и pbpaste я использую, потому что я часто пользуюсь системой macosx и там есть команды с такими названиями. Вы можете назвать алиасы по вашему желанию.

Ну и вставить текст в терминале:

Ну и напоследок, хотелось продемонстрировать как еще можно пользоваться данной утилитой. К примеру, есть у нас файл лога, и мы хотим просмотреть его последние 10 строк:

И мы хотим скопировать его, чтобы кому-то отправить его, просто укажем нашу утилиту:

Источник

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