"+y не копирует в буфер обмена

Я пытаюсь скопировать часть текста к системному буферу обмена. Во-первых, я делаю визуальный выбор: выбрать " затем + затем y.

Я затем получаю сообщение 7 lines yanked. Когда я нажимаю p, данные вставляются в vim; но, когда я пытаюсь вставить данные к любой другой программе - никакой результат. Как я решаю эту проблему?

1
задан 25 June 2016 в 09:33

1 ответ

Тип в терминале:

$ vim --version | grep -e version -e +mouse.* -e +clipboard

Идеально Вы имеете huge версия, установленная с функцией буфера обмена, а также многими скомпилированными функциями мыши - в. На всякий случай, сообщите о результате путем редактирования вопроса.

vi/vim используют другой буфер (буферы) обмена от Вашего нормального GUI: т.е. это имеет свой очень собственный буфер обмена, поэтому при попытке скопировать/вставить от открытого для энергии файла до где-нибудь вне энергии с Вашей мышью с помощью CTRL+x/CTRL+v, то Вы закончите с.... ничего.

I) попытайтесь использовать свою мышь (после этого, я доберусь до Вашего точного вопроса),

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

set mouse=a

где-нибудь в Вашей vi/vim конфигурации. Эта опция позволяет Вам использовать свою мышь в 4 наиболее распространенных режимах энергии: нормальный (вышел), вставьте, визуальный, режимы cmd-строки.

Ввести :help mouse на Вашей vi/vim сессии (нормальный режим), если Вы хотите знать больше. Если Вам включили ту опцию, можно все еще скопировать в vi и вставить внешнюю энергию с мышью. Для этого просто нажмите сдвиг, поскольку Вы выделяете свой текст в vi/vim. Ваша vi/vim оболочка сессии будет вести себя как будто set mouse=a не был установлен только на время той задачи. Это упоминается как "xterm обработка" мыши. Вы встретитесь с тем выражением, если Вы решите считать технический материал на этом.

II) используйте регистры от визуального режима в vi/vim

Существует два регистра, которые можно вызвать от cmd-строки, в то время как в vi/vim, поскольку Вы пытаетесь скопировать что-то для позже вставки его вне энергии. Я назову их "* и" + регистры (не их настоящие имена).

  • расположите свой курсор в визуальный режим и текст выделения
  • если Вы дергаете текст с "*y, затем можно обычно вставлять снаружи vi/vim, говорить в .odt файле, с помощью средней кнопки мыши. Другой регистр НЕ затронут.
  • если Вы дергаете с "+y, Вы на самом деле дергаете к и впоследствии вставляете от того, что назвало "буфер обмена". В этом случае Вы ударите то, что было в буфере обмена до того момента. Для вставки снаружи vi/vim просто используйте обычный CTRL+v'.

Примечание: После вставки, никакой изменения состояния регистров. Они все еще содержат тот же материал как прежде. Можно вернуться к vi/vim и вставить их содержание с также "*p или "+p (после курсора) или возможно также просто p.

Можно на самом деле изменить вышеупомянутое поведение, заставив все вставить к буферу обмена. Сделать :help clipboard из нормального vi/vim режима для обнаружения больше о буфере обмена. Обычно дифференцировавший регистры, доступные с также "*yили "+y жестоко практично, потому что, когда Вы хотите сохранить то, что уже находится в буфере обмена, Вы просто используете "*y дергать или "*d отключать-> никакое разрушение к буферу обмена там!

Так или иначе используя "+y или "+d не работает на Вас, как, кажется, случай, это, возможно, потому что Вы НЕ установили всю скомпилированную функцию, в которой Вы нуждаетесь для своей энергии. В особенности, если Вы не имеете функции "буфера обмена", разрешения и устанавливаете пакет vim-gtk от центра программного обеспечения Ubuntu, или:

$ sudo apt-get install vim-gtk

Это настроит Вас приятно, наряду с дополнительными хорошими дополнениями для интерактивного рассмотрения файлов, записанных в C, Python, латексе, Perl, Ruby и других, не говоря уже о локальном документе HTML для энергии при необходимости в нем.

... который Вы делаете, если Вы собираетесь сделать что-нибудь с энергией действительно.;-)

Если Вы делаете это, Вы могли бы хотеть закрыть все свои сеансы энергии и возможно даже получить Ваш .vimrc файл, хотя я не ясен на этом. Выходить из системы и въезжает задним ходом, не причинит боль все же.

И это просто царапало поверхность vi..

Править:

Для раздела I): можно устроить автоматическое основное устройство X11 "*y регистр, копирующий после выбора с мышью в визуальном режиме, включением set go+=aв Ваш ~/.vimrc файл.

Для раздела II): Если Вам скомпилировали функцию буфера обмена в Вашей установке энергии, можно отобразить копирование буфера обмена на CTRL+c путем вставки :vmap <C-C> "+y в Вашем ~/.vimrc. После этого необходимо будет только выделить текст, сделать CTRL+c для копирования в буфер обмена и CTRL+v для вставки где угодно снаружи vi/vim. Не больше "+y необходимый здесь в этом случае. Это определенное отображение только допустимо для визуального режима.

3
ответ дан 7 December 2019 в 12:43

Другие вопросы по тегам:

Похожие вопросы: