Может ли vim использовать системный буфер по умолчанию?

Я столкнулся с несколькими проблемами, потому что вкладки vim - из-за отсутствия лучшего термина - бог ужасный. Вместо этого я хочу использовать несколько вкладок Gnome, каждый из которых имеет другой экземпляр vim. Все должно работать нормально, однако для обмена текстом может использоваться только системный буфер +. Это делает все команды двумя нажатиями клавиш длиннее:

y y становится " + y y

y w становится " + y w

d ' k становится " + d ' k

Это особенно важно, если учесть, что операция yank/paste как таковая

y y p

становится

" + y y " + p

В любом случае, чтобы проинструктировать vim всегда использовать системный буфер (ы)?

EDIT см. здесь для получения дополнительной информации об использовании нескольких экземпляров vim через вкладки терминала Gnome

Ответ 1

Я нашел решение своей проблемы здесь. Если вы добавите следующее в ваш .vimrc файл

set clipboard=unnamedplus

Все, что вы держите в vim, перейдет в неназванный регистр, и наоборот.

Ответ 2

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

:se mouse-=a

и просто дважды щелкните /rightclick, как вы привыкли в своем терминале.

Тем не менее, я обожаю vim split windows и тот факт, что вы можете использовать мышь, чтобы перетаскивать разделители окон/позиционировать курсор (ересь!). Для этого требуется mouse + = a... (и будет работать и на сессиях ssh/screen!).

Вместо этого я использую такие вещи:

:%retab|%>|%y+|u

и иметь команды, подобные этому при вызове. Обратите внимание, что регистр "+" закодирован в командной строке. Чтобы скопировать последний визуальный выбор в буфер обмена,

:*y+

или

:'<,`>y+ 

Ответ 3

Возможное обходное решение:

"Ctrl-c to copy in + buffer from visual mode
vmap <C-c> "+y

"Ctrl-p to paste from the + register in cmd mode
map <C-v> "+p

"Ctrl-p to paste from the + register while editing
imap <C-v> <esc><C-v>