Буферы обмена vim и urxvt, как настроить?

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Ответить
Аватара пользователя
UnixNoob
Сообщения: 1367
ОС: Slackware

Буферы обмена vim и urxvt, как настроить?

Сообщение UnixNoob »

Понимаю что информации достаточно много по буферам обмена, но их столько разной, что я запутался и не пойму куда копать.
1.Хочу я иметь возможность сделать вот что:
Есть база иконок для шрифта. Выбрав иконку и нажав в правом углу "icon" я копирую её в буфер, а вставить в Vim не могу.
Варианты вставки указаны разные, но у меня работает вставка в режиме insert через Shift+Instert, но предварительно мне эту иконку приходится вставлять или в строку браузера, или в другой текстовый редактор.
Вставка через "+p не работает. Надо собрать vim с поддержкой xterm-clopboard или нет?

2.URXVT
Для него есть плагины, вернее я так понял были, в связи с тем что начиная с версии 9.20 появилась своя вставка alt+ctrl+c и alt+ctrl+v, но у меня она не работает. Надо что-то дописывать?
Из браузера я могу вставить средней кнопкой мыши в него, но не удобно.

Как мне все это дело привести к какому-то удобству. Если не к ctrl+c и ctrl+v, но хотя бы к каким-то парочкам комбинаций.
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: Буферы обмена vim и urxvt, как настроить?

Сообщение Hephaestus »

UnixNoob писал:
16.01.2021 23:43
Выбрав иконку и нажав в правом углу "icon" я копирую её в буфер, а вставить в Vim не могу.
Я не очень понял, что Вы хотите вставить. По нажатию на icon там ничего интересного не копируется.
По нажатию на class - да, копируется некий текст.

Теперь по поводу вставки.
Здесь подразумевается обмен данными с X11.
Справка vim гласит, что в X11 существует целых три буфера: PRIMARY, SECONDARY и CLIPBOARD.
В vim используется регистр quotestar ("*) для работы с PRIMARY и регистр quoteplus ("+) для работы с CLIPBOARD.
А вот буфер SECONDARY в vim напрямую недоступен.
см. vim help quoteplus.

На сайте wiki сказано то же самое: что регистр '+' связан с XA_SECONDARY (CTRL+C, CTRL+X, CTRL+V), а регистр '*' связан с XA_PRIMARY, в который попадает выделение мышью и вставляется из него по средней кнопке мыши.

Лично мне вставка средней кнопкой дико не нравится, потому что средняя кнопка под колесиком, и это колесико нажимать неудобно чисто физически).

Это всё хорошо, но vim в слаке собран без поддержки CLIPBOARD.

Когда вы на упомянутом Вами сайте нажимаете кнопку, копирование происходит именно в CLIPOBOARD,
поэтому у Вас ничего и не вставляется. Проверить легко: gvim собран с поддержкой CLIPBOARD (догадываетесь, почему?) и если в нем произвести вставку по "+p, то всё прекрасно вставится.
Замечу, что текст, скопированный с сайтов "обычным способом" (без всяких спец. кнопок), спокойно вставляется по Shift+Insert в режиме вставки в vim.
UnixNoob писал:
16.01.2021 23:43
Надо собрать vim с поддержкой xterm-clopboard или нет?
Если хочется непременно пользоваться обменом с CLIPBOARD именно в vim, то да.
Какие есть ещё варианты:
1. Настроить дублирование между CLIPBOARD и PRIMARY (чтобы скопированное в CLIPBOARD сразу попадало и в PRIMARY). Если не планируется использовать разные буферы одновременно, этот вариант сойдет.
2. Можно использовать xsel, которая позволяет работать со всеми тремя буферами обмена, вполне нормально вызывается из vim.
Разные варианты изложены в той же wiki, ссылку я дал выше.

Лично мне пересобирать пакет, установленный из официальных репов, банально лень.
Ситуации, когда скопированное попадает именно в CLIPBOARD у меня возникают нечасто.
К xsel и прочим таким способам я не привык (это ж надо ещё сообразить, в какой из трех буферов что-то скопировалось, хотя та же справка vim утверждает, что в большинстве новых приложений текущее выделение попадает в PRIMARY, a для copy/cut/paste используется CLIPBOARD).
Мне проще бывает запустить какой-нибудь geany и вставить туда.
UnixNoob писал:
16.01.2021 23:43
URXVT
Для него есть плагины, вернее я так понял были, в связи с тем что начиная с версии 9.20 появилась своя вставка alt+ctrl+c и alt+ctrl+v, но у меня она не работает. Надо что-то дописывать?
В urxvt у меня проблема в основном с копированием из него. Поэтому задействовано perl-расширение clipboard, копирование настроено на Alt+X. Со вставкой проблем нет, поскольку вставляется в него в основном откуда-нибудь из браузера, ну в общем, из PRIMARY, следовательно, работает Shift+Insert.
UnixNoob писал:
16.01.2021 23:43
Как мне все это дело привести к какому-то удобству. Если не к ctrl+c и ctrl+v, но хотя бы к каким-то парочкам комбинаций.
Удобство удобству рознь. Кто-то использует два буфера в иксах и ещё лихо жонглирует десятком регистров в vim. И считает именно это удобством. А кому-то привычней один-единственный буфер на всё, про всё.
Регистрами в vim я и сам порой пользуюсь (накопить в регистр кусков из разных мест, а потом одним махм всё вставить или держать в разных регистрах разные какие-нибудь заготовки и вставлять ту или другую по мере надобности), а вот с иксовыми буферами - да, бывает путаница. Но нечасто.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
UnixNoob
Сообщения: 1367
ОС: Slackware

Re: Буферы обмена vim и urxvt, как настроить?

Сообщение UnixNoob »

Hephaestus писал:
17.01.2021 10:11
Я не очень понял, что Вы хотите вставить. По нажатию на icon там ничего интересного не копируется.
По нажатию на class - да, копируется некий текст.
Ну возьмем к примеру иконку firefox - нажмем на кнопку Icon - вставим и получим - .
Мне это нужно для настройки тайлинговых менеджеров.
Hephaestus писал:
17.01.2021 10:11
Замечу, что текст, скопированный с сайтов "обычным способом" (без всяких спец. кнопок), спокойно вставляется по Shift+Insert в режиме вставки в vim
Если обычный способ это копирование в primary, т.е простое выделение мышкой, то да.
Hephaestus писал:
17.01.2021 10:11
Проверить легко: gvim собран с поддержкой CLIPBOARD (догадываетесь, почему?) и если в нем произвести вставку по "+p, то всё прекрасно вставится.
Не знаю почему, наверное для удобства, но на данный момент у меня только простой vim.
У Vima оказалось есть еще один режим,а именно режим paste. Включается командой :set paste (убирается :set nopaste) или назначением на кнопку. В этом режиме, для вставки, я могу использовать кнопки, используемые в терминале. Но тут мы приходим к вопросу с терминалом.
Hephaestus писал:
17.01.2021 10:11
Если хочется непременно пользоваться обменом с CLIPBOARD именно в vim, то да.
Я раньше когда искал встречал именно про xterm_clipboard , а сейчас когда стал искать, увидел и про clipboard без xterm, так какие опции нужны? Даже если gvim или neovim ставить, может когда пригодится.
Hephaestus писал:
17.01.2021 10:11
В urxvt у меня проблема в основном с копированием из него. Поэтому задействовано perl-расширение clipboard, копирование настроено на Alt+X. Со вставкой проблем нет, поскольку вставляется в него в основном откуда-нибудь из браузера, ну в общем, из PRIMARY, следовательно, работает Shift+Insert.
У меня версия 9.22, находил я такое:
Since version 9.20 rxvt-unicode natively supports copying to and pasting from the CLIPBOARD buffer with the Ctrl-Meta-c and Ctrl-Meta-v key bindings. The clipboard.autocopy setting is provided by the selection-to-clipboard extension shipped with rxvt-unicode.
У вас расширение вот такое используется? Или что попроще?
Hephaestus писал:
17.01.2021 10:11
Удобство удобству рознь. Кто-то использует два буфера в иксах и ещё лихо жонглирует десятком регистров в vim. И считает именно это удобством. А кому-то привычней один-единственный буфер на всё, про всё.
Да, это понятно. Но я так понял, primary и clipboard в vim и urxvt на данный момент жестко разделены, в остальном же,я так понял, то что попадает в primary автоматом попадает и в clipboard ( при условии что я нажал кнопки).
Мое удобство пока касается копирования из браузера в терминал или в vim без особых проблем. В идеале бы одной и той же комбинацией.
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: Буферы обмена vim и urxvt, как настроить?

Сообщение Hephaestus »

UnixNoob писал:
17.01.2021 16:40
Ну возьмем к примеру иконку firefox - нажмем на кнопку Icon - вставим и получим - 
Не знаю, не знаю. Вот этот символ непонятный вставился только в браузер - в форму ответа на форуме.
Кроме этото пробовал вставить в командную строку двух эмуляторов терминала и в редактор geany.
Либо вставляется буква D, либо не вставляется ничего.
В результате сложно сказать, есть ли толк от этой штуки. Каждый раз плясать вокруг "вставилось/не вставилось" не очень интересно. Это ещё и от шрифта зависит, судя по всему. И вообще, я больше люблю plain text - с ним проблем меньше.
UnixNoob писал:
17.01.2021 16:40
Не знаю почему, наверное для удобства
Нет, не поэтому. Дело в том, что gvim имеет графическую оболочку и рассчитан на работу в иксах,
и там обмен с иксами нужен и уместен. Поэтому gvim собран с поддержкой clipboard.
А почему vim собран без поддержки clipboard? Ну, типа он для тех случаев, когда иксов нет, ему clipboard не надо.
UnixNoob писал:
17.01.2021 16:40
Я раньше когда искал встречал именно про xterm_clipboard , а сейчас когда стал искать, увидел и про clipboard без xterm, так какие опции нужны?
Да обе, скорее всего.
UnixNoob писал:
17.01.2021 16:40
У меня версия 9.22, находил я такое:
У меня тоже 9.22, но я не сразу понял, что это за клавиши, потыкал, попробовал...
Это Ctrl+Alt+c, Ctrl+Alt+v. Но у меня там, как оказалось и xsel прикручен и ещё какая-то настройка... а я уж и забыл...
Короче, запустил urxvt без конфига, попробовал скопировать/вставить - работает, причем именно с буфером CLIPBOARD.
Ctrl+Alt+v вставляет из CLIPBOARD, а Shift+Insert вставляет из PRIMARY.
Если привыкну к трехклавишным комбинациям, может, и приживется...
UnixNoob писал:
17.01.2021 16:40
У вас расширение вот такое используется? Или что попроще?
Вроде это, хотя я уже не помню. Мне кажется оно там изначально было где-то в примерах.

UnixNoob писал:
17.01.2021 16:40
в остальном же,я так понял, то что попадает в primary автоматом попадает и в clipboard
Не всегда. В этом и проблема. Порой думаешь, что оно скопировалось, а оно не скопировалось.
Или скопировалось не в тот буфер.
UnixNoob писал:
17.01.2021 16:40
В идеале бы одной и той же комбинацией.
Как видите, одной комбинацией не получается. Где-то ctrl+c, где-то ctrl+alt+c...
Ну, Ctrl+C в терминале прерывает выполнение текущей команды. Поэтому Ctrl+C, Ctrl+V в терминале быть не может никак.
Если настроить, чтобы всё попадало в PRIMARY, будет работать Shift+Insert для всего. Причем настраивать надо на уровне иксов, а не конкретных программ. Тогда будет один буфер, глядишь, будет везде одинаково. И то, пока не встретится программа, в которой Shift+Insert означает что-то другое...
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Буферы обмена vim и urxvt, как настроить?

Сообщение Bizdelnick »

Hephaestus писал:
17.01.2021 17:49
Если настроить, чтобы всё попадало в PRIMARY, будет работать Shift+Insert для всего. Причем настраивать надо на уровне иксов, а не конкретных программ.
Firefox не работает с primary. Вообще.
Hephaestus писал:
17.01.2021 17:49
пока не встретится программа, в которой Shift+Insert означает что-то другое...
Вот в Firefox оно означает другое (вставку из clipboard).
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: Буферы обмена vim и urxvt, как настроить?

Сообщение Hephaestus »

Bizdelnick писал:
17.01.2021 18:23
Firefox не работает с primary. Вообще.
Bizdelnick писал:
17.01.2021 18:23
Вот в Firefox оно означает другое (вставку из clipboard).
Ну, тогда наоборот, чтобы всё попадало в CLIPBOARD. :D
Но вообще это всё похоже на "сделать одну большую кнопку".
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
UnixNoob
Сообщения: 1367
ОС: Slackware

Re: Буферы обмена vim и urxvt, как настроить?

Сообщение UnixNoob »

Bizdelnick писал:
17.01.2021 18:23
Вот в Firefox оно означает другое (вставку из clipboard).
Вот почему из него не работает вставка...
Hephaestus писал:
17.01.2021 17:49
И вообще, я больше люблю plain text - с ним проблем меньше.
Ну это не так часто нужно, один раз настроить иконки для бара. В awesome из того что я пока видел по настройке, для софта брались иконки из паков с иконками. Может для бара там иначе настраиваются, я не дошел до этого пока.
Hephaestus писал:
17.01.2021 17:49
Как видите, одной комбинацией не получается. Где-то ctrl+c, где-то ctrl+alt+c...
Ну, Ctrl+C в терминале прерывает выполнение текущей команды. Поэтому Ctrl+C, Ctrl+V в терминале быть не может никак.
Ну это да, но когда к условному ctrl+c добавляется в терминале просто shift это проще, чем комбинации для каждого приложения.
Подумаю на счет второго редактора тогда, и буду тогда дополнения ставить для терминала.
Hephaestus писал:
17.01.2021 18:38
Но вообще это всё похоже на "сделать одну большую кнопку".
Просто пока часто сталкиваюсь с необходимостью копирования и вставки, когда система настроена, тогда с таким сталкиваешься меньше.
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
Спасибо сказали:
Ответить