1

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

В . Файл vimrc в каталоге /home/{USER} помещает следующее:

vmap <C-c> "*y

После этого я вышел из оболочки, а затем открыл новую оболочку и файл в vim. Сделал визуальный отбор и затем выдал * у. Это дернуло выбранные линии. Я вышел из Vim, а затем в оболочке выдал CTRL+SHIFT+V. Но ничего не происходит.

Я попытался установить следующее также в .vimrc файле:

set clipboard=unnamed

Но это тоже не работает.

PS: Я могу вставить из буфера обмена системы в VIM , используя *p

В чем здесь может быть проблема? Я устанавливаю параметры в неправильном файле .vimrc?

Изменить: Когда я сделал vim --version | grep clipboard, я вижу следующее:

[subhrcho@slc04lyo ~]$ vim --version|grep clipboard
-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments 
-xterm_clipboard -xterm_save 

2 ответа2

4

В Linux есть разница между "* и "+ . Если вы хотите использовать системный буфер обмена (например, с помощью Ctrl + Shift + V), вы должны использовать "+ . (Аналогично, в последних версиях Vim есть :set clipboard+=unnamedplus .)

Чтобы вставить содержимое "* в терминал, используйте среднюю кнопку мыши.

Подробнее об этом читайте по адресу :help x11-selection

1

Нет. Вы не можете вставить с "*p если Vim не был собран с поддержкой буфера обмена.

-clipboard и -xterm_clipboard означают "нет буфера обмена". Без поддержки буфера обмена, "*y "+y "*p "+p не может вставить в / из буфера обмена на всех.

Если вам нужна поддержка буфера обмена, вы должны получить правильную сборку Vim (например, vim-gtk ). Это так просто.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .