1

Какими будут команды, чтобы иметь возможность делать CTRL + V на gVim?

В OS X я могу скопировать текст в vim, но в Windows я не получаю.

4 ответа4

2

Я бы порекомендовал одно из следующих вместо установки пользовательских ярлыков:

  1. Вставить из реестра:

    "+++p

  2. Вставить с помощью средней кнопки мыши

  3. Вставить используя контекстное меню

РЕДАКТИРОВАТЬ:

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

set clipboard=unnamed

2

Из документации vim:

mswin.vim

Чтобы использовать стандартный способ MS-Windows CTRL-X, CTRL-C и CTRL-V, используйте сценарий $ VIMRUNTIME/mswin.vim. Вы можете добавить эту строку в ваш файл _vimrc: source $ VIMRUNTIME/mswin.vim

2

Хотя вы можете настроить привязки клавиш, как предлагает Отиэль, я думаю, что было бы более полезно понять, как копировать и вставлять работает в Vim, и узнать, что на самом деле означают эти команды.

Команды вырезания, копирования и вставки в Vim (d , y и p) работают с так называемыми регистрами, которые содержат последний вырезанный или скопированный текст. По умолчанию они используют безымянный регистр "" , а системный буфер обмена - "+ регистр.

Вместо этого вы можете добавить к регистру команды с регистром. Итак, чтобы скопировать из Vim в Windows, используйте "+y , а для вставки из Windows - "+p .

У вас также есть 26 регистров с именами от "a до "z которые вы можете использовать для чего угодно. Это может быть очень полезно при выполнении сложных операций редактирования.

Также есть больше специальных регистров, для получения дополнительной информации см :help registers .

0

Добавьте следующее в ваш файл vimrc (должен находиться в C:\Program Files\Vim\_vimrc):

" CTRL-X = cut
vnoremap <C-X> "+x
" CTRL-C = copy
vnoremap <C-C> "+y
" CTRL-V = paste
map <C-V> "+gP
cmap <C-V> <C-R>+
exe 'inoremap <script> <C-V>' paste#paste_cmd['i']
exe 'vnoremap <script> <C-V>' paste#paste_cmd['v']
imap <S-Insert> <C-V>
vmap <S-Insert> <C-V>

Или используйте команду p в vim, чтобы вставить содержимое буфера обмена.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .