Вставка в vim из системного буфера

Регистры "* и "+ предназначены для буфера обмена системы ( :help registers ). В зависимости от вашей системы они могут выполнять разные действия. Например, в системах, которые не используют X11, например OSX или Windows, регистр "* используется для чтения и записи в системный буфер обмена. В системах X11 можно использовать оба регистра. См. :help x11-selection для получения более подробной информации, но в основном "* аналогичен _PRIMARY_ -му выбору X11 (который обычно копирует то, что вы выбираете с помощью мыши, и вставляет среднюю кнопку мыши), а "+ аналогичен _CLIPBOARD_ -му выбору X11 (который является собственно буфером обмена).

Если все это прошло мимо вашей головы, попробуйте использовать "*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 .

Также стоит упомянуть опцию paste vim ( :help paste ). Это помещает vim в специальный «paste mode» , который отключает несколько других опций, позволяя вам легко вставлять в vim, используя знакомый ярлык вставки вашего эмулятора terminal или мультиплексора. (Просто введите :set paste , чтобы включить его, вставьте содержимое, а затем введите :set nopaste , чтобы отключить его.) Кроме того, вы можете использовать параметр pastetoggle для установки кода ключа, который переключает режим ( :help pastetoggle ).

Я рекомендую использовать регистры вместо этих опций, но если они все еще слишком страшны, это может быть удобным обходным путем, пока вы совершенствуете свои отбивные vim.

Более подробную информацию см. в разделе :help clipboard .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *