Как скопировать выделенные строки в буфер обмена в vim - PullRequest
70 голосов
/ 06 февраля 2012

Как скопировать выделенные строки в буфер обмена в vim. Я знаю, как это сделать для всех текстовых файлов , но я хочу сделать это для выбранных строк. Спасибо!

Ответы [ 9 ]

90 голосов
/ 06 февраля 2012

SHIFT V переводит вас в режим выбора линий.Затем "* y возвращает текущие выбранные строки в регистр *, который является буфером обмена. Существует довольно много различныхрегистры для различных целей. Подробнее о различиях между регистрами * и + в Windows и Linux см. в разделе selection and drop registers.

68 голосов
/ 07 февраля 2012

Если вы работаете в Linux и используете VIm версии 7.3.74 или выше (версия, которая устанавливается в Ubuntu 11.10 и более поздних версиях, удовлетворяет этому), вы можете сделать

set clipboard=unnamedplus

, который поместит набранный текст в глобальный буфер обмена и позволит вам вставлять из глобального буфера обмена без использования каких-либо специальных регистров. В отличие от решения ldigas, оно также будет работать на версиях VIm без графического интерфейса пользователя.

10 голосов
/ 07 февраля 2012
set guioptions+=a

будет ... ну, короче говоря, всякий раз, когда вы выбираете / дергаете что-то, вы помещаете это и в буфер обмена (не Vim, а глобальная клавиатура оконной системы). Таким образом, вам не нужно думать о том, чтобы вытащить вещи в специальный регистр.

8 голосов
/ 09 июня 2014

Для GVIM, нажмите v, чтобы перейти в визуальный режим; выделите текст и нажмите Ctrl+Insert, чтобы скопировать выделение в глобальный буфер обмена.

Из меню видно, что это сочетание клавиш "+y, т.е. удерживайте клавишу Shift, затем нажмите ", затем +, затем отпустите Shift и нажмите y (громоздко по сравнению с Shift + Insert) .

4 голосов
/ 16 августа 2016

Если вы используете vim в MAC OSX, к сожалению, он поставляется с более старой версией и не соответствует параметрам буфера обмена. К счастью, доморощенный может легко решить эту проблему.

установить vim:

brew install vim --with-lua --with-override-system-vim

установить графический ключ vim:

brew install macvim --with-lua --with-override-system-vim

перезапустите терминал для вступления в силу.

добавить следующую строку в ~ / .vimrc

set clipboard=unnamed

теперь вы можете скопировать строку в vim с помощью yy и вставьте его в систему.

3 голосов
/ 09 июня 2014

Если vim скомпилирован с поддержкой буфера обмена, то вы можете использовать "*y, что означает: вставлять визуально выделенный текст в регистр * ('*' для буфера обмена)

Если нет поддержки буфера обмена, я думаю, что только другой способ - использовать Ctrl+Insert после визуального выделения текста в vim.

3 голосов
/ 16 апреля 2014

Установите "xclip", если у вас нет ...

sudo apt-get install xclip

Xclip помещает данные в «выделенный / выделенный» буфер обмена, который вы нажимаете средней кнопкой мыши для вставки, а не «ctrl + v»

В vim используйте команды ex:

7w !xclip

или

1,7w !xclip

или

%w !xclip

Затем просто щелкните средней кнопкой мыши, чтобы вставить в любое другое приложение ...

1 голос
/ 25 мая 2017

Добавьте следующий код в .vimrc:

if has('clipboard')
    if has('unnamedplus')  " When possible use + register for copy-paste
        set clipboard=unnamed,unnamedplus
    else         " On mac and Windows, use * register for copy-paste
        set clipboard=unnamed
    endif
endif
0 голосов
/ 20 апреля 2019

Я добавил следующую строку в мой .vimrc

vnoremap <F5> "+y<CR>

Это позволяет вам скопировать выделенный текст в буфер обмена, нажав F5.Вы должны быть в визуальном режиме, чтобы это работало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...