Как скопировать выделенные строки в буфер обмена в vim. Я знаю, как это сделать для всех текстовых файлов, но я хочу сделать это для выбранных строк. Спасибо!
Как скопировать выделенные строки в буфер обмена в vim
Ответ 1
SHIFT V помещает вас в режим выбора линий. Затем " * y забирает текущие выделенные строки в регистр *
, который является буфером обмена. Есть довольно много разных регистров для разных целей. Подробнее о различиях между *
и +
в Windows и Linux см. Раздел selection and drop registers
.
Ответ 2
Если вы работаете в Linux и используете версию VIm версии 7.3.74 или выше (версия, установленная в Ubuntu 11.10, удовлетворяет этому), вы можете сделать
set clipboard=unnamedplus
который поместит яркий текст в глобальный буфер обмена и позволит вам вставлять его из глобального буфера обмена без необходимости использования каких-либо специальных регистров. В отличие от решения ldigas, это также будет работать с версиями VIm. Не-gui.
Ответ 3
set guioptions+=a
будет,... uhmm, словом, всякий раз, когда вы выберете/задержите что-нибудь, поместите его в буфер обмена (а не Vim's, а глобальную клавиатуру оконной системы). Таким образом, вам не нужно думать о том, чтобы вытащить вещи в специальный реестр.
Ответ 4
Для GVIM нажмите v
, чтобы перейти в визуальный режим; выберите текст и нажмите Ctrl+Insert
, чтобы скопировать выделение в глобальный буфер обмена.
В меню вы увидите, что клавиша быстрого доступа "+y
т.е. нажмите клавишу Shift, затем нажмите "
, затем +
, а затем отпустите Shift и нажмите y
(громоздко по сравнению с Shift + Insert).
Ответ 5
Если вы используете vim в MAC OSX, к сожалению, он поставляется со старым версией и не соответствует настройкам буфера обмена. К счастью, доморощенный может легко решить эту проблему.
установить vim:
brew install vim --with-lua --with-override-system-vim
установить gui verion vim:
brew install macvim --with-lua --with-override-system-vim
перезапустите терминал, чтобы вступить в силу.
добавьте следующую строку в ~/.vimrc
set clipboard=unnamed
теперь вы можете скопировать строку в vim с помощью yy
и вставьте его в системную область.
Ответ 6
Установите "xclip", если у вас нет...
sudo apt-get install xclip
Xclip помещает данные в буфер обмена "выделение/выделение", который вы кликнете в среднем клике, в отличие от "ctrl + v"
В то время как в vim используются команды ex:
7w !xclip
или
1,7w !xclip
или
%w !xclip
Затем просто кликнув по середине, чтобы вставить любое другое приложение...
Ответ 7
Если vim скомпилирован с поддержкой буфера обмена, вы можете использовать "*y
значение: yank визуально выбранный текст в регистр *
('*' для буфера обмена)
Если поддержки буфера обмена нет, я думаю, что только другой способ - использовать Ctrl+Insert
после визуального выбора текста в vim.
Ответ 8
Добавьте следующий код в свой .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
Ответ 9
Я добавил следующую строку в мой .vimrc
vnoremap <F5> "+y<CR>
Это позволяет скопировать выделенный текст в буфер обмена, нажав клавишу F5
. Вы должны быть в визуальном режиме, чтобы это работало.