Как сказано в заголовке, я не могу скопировать из vim в системный буфер обмена. Работает Viceversa, копирование извне vim и вставка p
в порядке.
Я установил поддержку буфера обмена, vim версия 7.3.429:
$ vim --version | grep clip
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
+xsmp_interact +xterm_clipboard -xterm_save
У меня есть:
set clipboard=unnamedplus
по моему .vimrc
и он устанавливается когда я
set clipboard?
или же
:echo has('clipboard')
Я использую Ubuntu 12.04 LTS и VIM внутри gnome-terminal
(но также GVim имеет ту же проблему). Любая идея?
Спасибо
clipboard+=unnamedplus
что-то установить в настройках по умолчанию было отключение. Изменениеclipboard=unnamedplus
(например, удаление других настроек) работало для меня.set clipboard+=unnamed
&set clipboard+=unnamedplus
не работает при использовании y и p для общего доступа к системному буферу обмена.:set clipboard?
==clipboard=autoselect,exclude:cons\|linux,unnamed,unnamedplus
; После того, как я удалил первый+
, которыйset clipboard=unnamed
иset clipboard+=unnamedplus
, и она работает !!:set clipboard?
==clipboard=unnamed,unnamedplus
Ответы:
Вот что у меня работает (Ubuntu 13.10):
Переустановите vim как vim-gtk:
выберите то, что вы хотите с помощью мыши - затем введите, чтобы скопировать в буфер обмена :
вставить в vim из буфера обмена :
Я не знаю почему, но сравнивая вывод,
vim --version
видно, что обычная установка vim весьма ограничена по сравнению с vim-gtk. Замена vim на vim-gtk не повлияла ни на какие настройки.Дальнейшая информация:
источник
xterm_clipboard
поддержку, но"+p
не работают в обычном VIM. Вместо того, чтобы вырезать в буфер обмена, он увеличивает количество выделенных строк.vim-gtk
конечном итоге сработала для меня в 14.04.4, но я столкнулся с вещами немного иначе, чем другие, комментирующие. Передvim-gtk
установкой показывался vim-xterm_clipboard
(т.е. не включен). После установкиvim-gtk
это показывает (+ xterm_clipboard). Я проверяю это сvim --version | grep clip
. Во всяком случае, имеет смысл, что вам нужно+xterm_clipboard
!Я собираюсь оставить оригинальный ответ ниже, потому что это может быть важно для других, которые ищут этот вопрос.
Короче говоря, не кажется, что один размер подходит всем ответам, но с 'set clipboard = unnamedplus' один из '* p' или '+ p' должен работать из "системного" буфера обмена.
'* p' почти наверняка тот, который вы хотите. ( отсюда )
vim - это программа cli. При использовании его внутри gnome-терминала (или любого эмулятора терминала) crtl + c (или любая комбинация клавиш) обрабатывается сначала эмулятором терминала, затем оболочкой, а затем, наконец, программой (в данном случае vim). vim и ctrl + c почти наверняка никогда не будут работать, потому что ctrl + c отправляет сигнал SIGINT запущенной задаче. vim использует SIGINT для остановки других вещей, таких как прерывание режима вставки или остановка функций поиска.
Другими словами. Ctrl + C никогда не передается в VIM. SIGINT передается в VIM. SIGINT имеет иное применение в vim, поэтому использование для копирования, скорее всего, не сработает (и даже если вы можете форсировать его, не очень хорошая идея).
Вместо этого попробуйте придерживаться Ctrl + Shift + C и Ctrl + Shift + V (есть и другие, но я считаю, что они помещают текст в системный буфер обмена)
Честно говоря, я не знаю много о gvim.
источник
ctrl-c
ВНЕШНЮЮ vim и вставив сp
, но в vim я знаю, что должен использоватьy
.. Я отредактирую свой вопросИспользуйте в вашем vimrc:
Это позволит вам выбрать и скопировать вручную с помощью мыши.
источник
В дополнение к принятому ответу , если вы работаете удаленно по SSH (например, по
tmux
нескольким панелям с различнымиvim
процессами, между которыми вы хотите копировать), вам также необходимо экспортировать X-дисплей, посколькуvim
он используетсяxterm-clipboard
для взаимодействия между различными процессами. Вы можете установить X дисплей, запустивЭто должно быть выполнено до
vim
запуска и под любой другой оболочкой, которая у вас есть.источник
Я нашел на Ubuntu 16.04 мне нужно
vim-gui-common
установить для того,"+y
чтобы работать.источник