Ответ 1
Я нашел решение своей проблемы здесь. Если вы добавите следующее в ваш .vimrc файл
set clipboard=unnamedplus
Все, что вы держите в 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
Я нашел решение своей проблемы здесь. Если вы добавите следующее в ваш .vimrc файл
set clipboard=unnamedplus
Все, что вы держите в vim, перейдет в неназванный регистр, и наоборот.
Кстати, если вы просто хотите использовать собственную обработку копирования/вставки терминала, предложите установку
:se mouse-=a
и просто дважды щелкните /rightclick, как вы привыкли в своем терминале.
Тем не менее, я обожаю vim split windows и тот факт, что вы можете использовать мышь, чтобы перетаскивать разделители окон/позиционировать курсор (ересь!). Для этого требуется mouse + = a... (и будет работать и на сессиях ssh/screen!).
Вместо этого я использую такие вещи:
:%retab|%>|%y+|u
и иметь команды, подобные этому при вызове. Обратите внимание, что регистр "+" закодирован в командной строке. Чтобы скопировать последний визуальный выбор в буфер обмена,
:*y+
или
:'<,`>y+
Возможное обходное решение:
"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>