"*
И "+
регистры для буфера обмена системы ( :help registers
). В зависимости от вашей системы они могут делать разные вещи. Например, в системах, которые не используют X11, таких как OSX или Windows, "*
регистр используется для чтения и записи в системный буфер обмена. В системах X11 могут использоваться оба регистра. Смотрите :help x11-selection
подробности, но в основном "*
это аналог выбора PRIMARY в X11 (который обычно копирует то, что вы выбираете мышью, и вставки средней кнопкой мыши) и "+
аналогично выделению X11 CLIPBOARD (которое является собственно буфером обмена).
Если все это у вас над головой, попробуйте с помощью "*yy
или "+yy
скопировать строку в буфер обмена вашей системы. Предполагая, что у вас есть соответствующие параметры компиляции, один или другой должен работать. Вы можете переназначить это на что-то более удобное для вас. Например, вы можете вставить vnoremap <C-c> "*y
~ / .vimrc, чтобы вы могли визуально выбрать и нажать Ctrl+, cчтобы вернуться в буфер обмена вашей системы.
Имейте в виду, что копирование / вставка из системного буфера обмена не будет работать, если :echo has('clipboard')
возвращается 0. В этом случае vim не скомпилирован с этой +clipboard
функцией, и вам придется установить другую версию или перекомпилировать ее. Некоторые дистрибутивы Linux предоставляют минимальную установку vim по умолчанию, но, как правило, если вы устанавливаете пакет vim-gtk
или vim-gtk3
пакет, вы можете получить дополнительные функции.
Вы также можете посмотреть на 'clipboard'
опцию, описанную в :help cb
. В этом случае вы можете :set clipboard=unnamed
или :set clipboard=unnamedplus
сделать все операции удаления / удаления автоматически скопировать в системный буфер обмена. Это может быть неудобно в некоторых случаях, когда вы сохраняете что-то еще в буфере обмена, так как это переопределит его.
Для вставки вы можете использовать "+p
или "*p
(опять же, в зависимости от вашей системы и / или желаемого выбора) или вы можете сопоставить их с чем-то другим. Я печатаю их явно, но часто оказываюсь в режиме вставки. Если вы находитесь в режиме вставки, вы все равно можете вставить их с правильным отступом, используя <C-r><C-p>*
или <C-r><C-p>+
. См :help i_CTRL-R_CTRL-P
.
Также стоит упомянуть параметр vim paste
( :help paste
). Это помещает vim в специальный «режим вставки», который отключает несколько других опций, позволяя легко вставлять в vim с помощью эмулятора терминала или знакомого ярлыка вставки мультиплексора. Просто введите, :set paste
чтобы включить его, вставьте содержимое, а затем введите, :set nopaste
чтобы отключить его. Кроме того, вы можете использовать pastetoggle
опцию для установки кода клавиши, который переключает режим ( :help pastetoggle
). Я рекомендую использовать регистры вместо этих опций, но если они все еще слишком страшны, это может быть удобным обходным путем, пока вы совершенствуете свои vim отбивные.
Смотрите :help clipboard
для более подробной информации.