Как скопировать в буфер обмена в Vim? - PullRequest
661 голосов
/ 18 октября 2010

Можно ли скопировать в буфер обмена непосредственно из Vim? yy копирует только содержимое во внутренний буфер Vim. Я хочу скопировать в буфер обмена ОС. Есть ли такая команда в Vim, или вы можете только дергать вещи в Vim?

Ответы [ 29 ]

2 голосов
/ 24 января 2016

Если вы не хотите использовать какой-либо графический интерфейс для vim и предпочитаете просто использовать эмулятор терминала, может быть гораздо более простой подход к этой проблеме. Вместо того, чтобы использовать yank или что-то подобное, сначала взгляните на документацию терминала, который вы используете. Я боролся с той же проблемой (пытаясь использовать + clipboard, xclip и т. Д.), И в итоге оказалось, что в моем эмуляторе терминала достаточно просто нажать shift и выбрать любой текст, который вы хотите скопировать. Вот и все. Довольно просто и не нужно возиться с конфигурацией. (Кстати, я использую urxvt).

2 голосов
/ 09 июня 2018

У меня была проблема, потому что мой vim не поддерживал буфер обмена :

vim --version | grep clip
-clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      -mouseshape      +startuptime     -xterm_clipboard

Я установил vim-gnome (который поддерживает буфер обмена), а затем снова проверил:

vim --version | grep clipboard
+clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      +mouseshape      +startuptime     +xterm_clipboard

Теперь я могу копировать и вставлять, используя "+ y и" + p соответственно.

1 голос
/ 18 февраля 2016

если вы подключаетесь к системе Unix через шпаклевку, выполните следующие действия для копирования содержимого файла

  • Выделите текст, который вы хотите скопировать (вы сможете копировать постранично)
  • нажмите Ctrl + C (это скопирует текст в буфер обмена
  • вставьте в любой внешний редактор Готово
1 голос
/ 04 ноября 2017

для OSX, как и в ответах 10342, приведенных выше, необходимо убедиться, что vim поддерживает функцию буфера обмена, поскольку тот, который поставляется с OSX, НЕ поддерживает буфер обмена, и что при запуске brew install vim это будет работать.

За исключением того, что запуск vi все равно заставит вас запустить предварительно поставленную версию OSX, а не ту, которую вы установили из brew.

чтобы преодолеть это, я просто присвоил моей команде vim версию brew, а не версию по умолчанию для OSX:

alias vim="/usr/local/Cellar/vim/8.0.1100_1/bin/vim"

и теперь я золотой

0 голосов
/ 24 июня 2019

В моем случае выбор текста путем выделения (щелчка и перетаскивания) моей мышью заставлял vim переходить в визуальный режим.

В любом случае, на Mac самое простое решение - использовать fn + mouse click and drag, чтобы избежать входа в визуальный режим.

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

0 голосов
/ 17 мая 2019

Я боролся с этим уже несколько месяцев на MacOsX с помощью сочетаний клавиш. Я знаю, что вопрос не в использовании шортов для клавиатуры. Но это может помочь кому-то с таким же беспокойством.

Я обнаружил, что если вы снимите отметку:

Просмотр -> Разрешить отчеты мыши

из меню терминала, вы сможете скопировать в буфер обмена, используя

команда + c

еще раз.

0 голосов
/ 04 апреля 2019

Shift + Ctrl + C , если вы работаете в графическом режиме Linux, но сначала вам нужно выбрать то, что вам нужно скопировать.

enter image description here

0 голосов
/ 20 февраля 2017

selecting с помощью mouse и right-click copy работали в моем случае.

Я не хотел включать номера строк, поэтому я :set nonumber до copying.

0 голосов
/ 06 октября 2017

Ничто из вышеперечисленного не работает для меня на моем ноутбуке с Windows.

Ctrl + C хорошо для копирования ... но мне нужно было Shift + Вставить для вставки!

(Хорошая причина всегда иметь ноутбук, где Вставка всегда доступна без нажатия дополнительной клавиши)

...