Как сказано в названии, я не могу скопировать из vim в системный буфер обмена.
У меня установлена поддержка буфера обмена, версия vim - 7.3.429:
$ vim --version | grep clip
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
+xsmp_interact +xterm_clipboard -xterm_save
У меня есть: [ ! d2]
set clipboard=unnamedplus
в моем .vimrc, и он установлен, когда я делаю:
set clipboard?
или
:echo has('clipboard')
Я использую Ubuntu 12.04 LTS, и vim внутри gnome-terminal (но и GVim имеет ту же проблему). Любая идея?
Спасибо
Я собираюсь оставить исходный ответ ниже, потому что для других, которые ищут этот вопрос, может быть важно.
Короче говоря, похоже, что один размер не подходит для всего ответа, но с «set clipboard = unnamedplus» один из «* p» или «+ p» должен работать из буфера обмена «system».
'* 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.
Использовать в vimrc:
set mouse=a
Это позволит вам выбирать и копировать вручную с помощью мыши.