Конфликт VIM Ctrl-V с Windows Paste

110

Я использую VIM в Windows. Проблема в том, что я хочу использовать CtrlVкак визуальный режим. Однако этот ключ конфликтует с вставкой Windows. Как я могу вернуть этот ключ в визуальный режим VIM вместо вставки. Я предпочитаю устанавливать это в моем файле конфигурации _vimrc.

David.Chu.ca
источник

Ответы:

145

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

Поскольку CTRLVиспользуется для вставки, вы не можете использовать его для запуска поблочного визуального выделения. CTRLQВместо этого можно использовать . Вы также можете использовать CTRLQв режимах вставки и командной строки, чтобы получить старое значение CTRLV. Но CTRLQ не работает для терминалов, когда используется для потока управления.

Alex
источник
2
Мне это нравится больше, чем возиться с _vimrc. Это работает немедленно, и, поскольку я вряд ли буду использовать последовательные терминалы в будущем, управление потоком Ctrl-S / Ctrl-Q не является проблемой.
Майкл Диллон
В Linux (терминал Gnome) мне показалось, что лучше использовать CTRL-K CR , но я сначала нашел этот ответ.
jalanb
3
По какой-то причине мне понадобилось использовать Shiftклавишу для визуального выбора в Windows, а в Linux - нет.
stevesliva
1
Спасибо user132014! Я обнаружил, что вам нужно использовать h, j, k и l для навигации в режиме визуального блока с помощью Ctrl-Q. Так обстоит дело с редактором gVim для Windows. Стрелки, похоже, не работают в gVim для Windows при навигации в режиме визуального блока с помощью Ctrl-Q.
Ратнеш Чандна
3
@RatneshChandna - Использовать Shiftвместе со стрелками? Я наблюдаю такое же поведение, но каким-то образом обнаружил, что это Shiftсработало. Я не знал, что h / j / k / l работает.
stevesliva
40

Проверьте свой файл _vimrc и посмотрите, не является ли он источником mswin.vim. Этот сценарий сопоставляет ^ v вставке. Вы можете удалить эту строку в файле _vimrc или отключить команды сопоставления непосредственно в mswin.vim.

Сделайте: помогите вести себя на vim для получения дополнительной информации.

Jop
источник
24

Визуальный режим (и другие вещи), работающий как в Unix, требует предложений как JOP, так и программиста Windows.

В GVim в Windows перейдите в меню редактирования, щелкните параметры запуска и закомментируйте мусор, относящийся к Windows (с помощью символа комментария vimrc, который является двойной кавычкой). Mswin.vim файл где ctrl- vзадается переопределение, и ведут себя mswin вариант делает это так , что клавиши со стрелками , не просто применить движение , как и следовало ожидать (он также изменяет поведение выбора мыши).

"source $VIMRUNTIME/mswin.vim
"behave mswin

Мне также нравится добавлять цветовую схему с черным фоном, чтобы она больше походила на то, что я видел бы в терминале (и потому что светлый фон хорош на бумаге, но ужасен на экране с подсветкой): colorscheme koehler

dannysauer
источник
20

Если эта строка в вашем _vimrc вас беспокоит:

behave mswin

затем удалите эту строку.

Программист Windows
источник
14

Я предпочитаю везде одни и те же нажатия клавиш, поэтому я использую это в моем .vimrc, чтобы переопределить mswin.vim:

if has('win32')
  " Avoid mswin.vim making Ctrl-v act as paste
  noremap <C-V> <C-V>
endif
ршдев
источник
7

Я не уверен, что вы можете многое с этим поделать. Вы можете использовать CtrlQвместо этого.

Старкий
источник
4

Комбинация совета jop (поиск mswin.vim в файле _vimrc по умолчанию) и совета "программиста Windows" (избавление от строки "behavior mswin") подействовала на меня как прелесть.

(моя репутация слишком низкая, чтобы голосовать за них или объединять их - кто-нибудь уберет это для меня, или я вернусь, когда моя репутация станет выше)

Рик Рейнольдс
источник
3
Другими словами, вы пытались оставить комментарий?
Кристофер Боттомс,
1
Хех, я нечасто использую stackoverflow (отсюда и моя низкая репутация),
Рик Рейнольдс