Вы можете использовать это для вставки из буфера обмена с помощью Ctrl v :
set pastetoggle=<F10>
inoremap <C-v> <F10><C-r>+<F10>
И это для визуального выделения в буфер обмена с помощью Ctrl c :
vnoremap <C-c> "+y
Если вы также хотите использовать буфер обмена по умолчанию для классического vim yanking / pasteing ( y / p ) в обычном режиме, вот вариант конфигурации, который делает это:
set clipboard=unnamedplus
С помощью этих конфигов вы можете, например, сначала дерните в обычном режиме, а затем вставьте с помощью Ctrl v в режиме вставки. Также вы можете вставить текст из разных экземпляров vim и из разных приложений.
Другой вариант:
set clipboard=unnamed
Тогда вы сможете просто выбрать что-либо, перетаскивая мышью в вашей среде X, и затем вставить его в vim. Но (по какой-то причине) вы не сможете что-то дергать ( y ) в Vim и shift вставить потом куда-нибудь еще, что, вероятно, довольно ограничение.
Vim docs об этом: http://vim.wikia.com/wiki/Accessing_the_system_clipboard
Для вставки из пользовательских регистров вы можете следовать другим ответам :). Этот ответ в основном касается интеграции Vim с системным буфером обмена.
Обратите внимание, что для работы set clipboard=unnamedplus
и set clipboard=unnamed
необходимо использовать gvim или vimx (vim-X11
): они скомпилированы с +xterm_clipboard
. При желании вы можете поместить это в свой .bashrc
псевдоним vim
с помощью vimx
:
if [ -e /usr/bin/vimx ]; then
alias vim='/usr/bin/vimx'; # vim with +xterm_clipboard
fi
Вы можете узнать, есть ли у вашего vim +xterm_clipboard
в информации, предоставленной vim --version
.