Vim копирование-вставка через терминалы

19

Обычный vim yankи pasteработает только в одном окне (но работает с файлами и командами закрытия / сохранения). Можно ли заставить его работать через терминалы (выдернуть из окна в одном терминале и вставить в другом) и если да, то как?


источник

Ответы:

30

Возможно , самое простое , что для Вас , чтобы попытаться это положить set clipboard=unnamedв вашей .vimrcи перезапустить ВИМ сессий.

Это позволяет вам yank(например yy) работать в одном окне, и put(например p) в другом окне будет просто работать, потому что все сеансы vim будут совместно использовать один и тот же буфер выбора X.

С другой стороны, ваш буфер янки будет перезаписан, как только вы выделите какой-либо текст в любом другом окне любого приложения.

С другой стороны, это также означает, что все, что вы дергаете в vim, теперь может быть вставлено в любое приложение с помощью среднего щелчка.

Если вам не нравится этот способ, вы можете набрать "+или "*перед своим рывком и поставить команды, например, "+yyчтобы восстановить строку.

Эти +формы взаимодействуют с буфером обмена ( "+yэто как Ctrl+ C, "+pэто как Ctrl+ V).
Эти *формы взаимодействуют с буфером выбора ( "*yэто как левой кнопкой мыши и перетащить, "*pэто как средней кнопкой мыши).

Подробности смотрите в разделе Выбор GUI , поддержка выбора X11 , параметры буфера обмена и мыши .

Mikel
источник
3
Боже, я люблю средний щелчок. :)
Дан М.
set clipboard=unnamedу меня не работает (я положил его в .vimrc и перезапустил все сессии vim). К сожалению, и другие методы не делают. Похоже, мой vim не скомпилирован с x-support. Я использую VNC для подключения к Linux-машине с Windows-машины.
3
Да, этот метод требует поддержки X11. Запустите :echo has('x11'), если поддержка X включена, он напечатает 1.
Микель
0

Если вы хотите скопировать весь файл в целевой файл.

Откройте целевой файл в vim.

Поместите курсор в нужное место и введите следующее:

:r /path_to_file/file.ext

Это скопирует весь файл туда, где находится ваш курсор ...

no1uknow
источник