Подтвердить что ты не робот

Выбор блока столбцов только для клавиатуры в GVim Win32 или почему Ctrl-Q не эмулирует Ctrl-V, когда включен mswin.vim?

Я хочу иметь возможность выбирать столбчатые блоки, используя только клавиатуру, когда я использую GVim для Windows, но, похоже, я не могу это сделать при использовании gvim (7.2) в Windows XP. Изменить: для удобства предпочтительнее сделать выбор со стрелками, как это обычно делается в других версиях vi/vim.

В терминале при использовании vim для определения блока можно выбрать столбчатые блоки, нажав Ctrl-V и удобным перемещением курсора с помощью клавиш со стрелками.

При использовании GVim на mswin, Ctrl-V отображается на операцию вставки. В каждой ссылке, найденной в этой теме, упоминается, что на mswin Ctrl-Q настроен так же, как Ctrl-V работает на других платформах, но это не работает для меня.

После того, как исследование показало, что поведение Ctrl-Q реализуется посредством включения mswin.vim, казалось, что mswin.vim не был загружен GVim. mswin.vim, по-видимому, загружается через _vimrc. Казалось, что, возможно, mswin.vim не загружался, поэтому, возможно, _vimrc настроен неправильно, но...

C:\Program Files\Vim\_vimrc существует:

source $VIMRUNTIME/mswin.vim
behave mswin

C:\Program Files\Vim\vim72\mswin.vim существует и содержит:

" Use CTRL-Q to do what CTRL-V used to do
noremap <C-Q>       <C-V>

C:\Program Files\Vim\_vimrc должен загружаться, так как Edit | Окно настроек в графическом меню GVim загружает этот файл для редактирования, и ясно, что C:\Program Files\Vim\vim72\mswin.vim загружается, потому что можно вставить синтаксическую ошибку в этот файл, и GVim будет жаловаться на него при запуске (он был скопирован для тестирование и восстановление для предотвращения случайной коррупции).

При нажатии Ctrl-Q курсор изменяется так же, как и при блокировке выделения текста с помощью мыши, но любое перемещение курсора в этой точке приводит к тому, что курсор возвращается к нормальному курсору. Неважно, продолжаете ли вы удерживать Ctrl, Ctrl-Q или нет.

Изменить: Ctrl-Q переходит в режим выбора блока, как указано с помощью изменения курсора, так как другие команды перемещения курсора расширяют блок, однако исходное намерение этого вопроса состояло в том, чтобы узнать, как использовать клавиши со стрелками (таким же образом, они могут использоваться в других реализациях редактора), хотя это не было явно указано в первоначальных, без ответа изменениях вопроса.

Можно визуально выбрать столбчатые блоки, нажав Alt, удерживая нажатой левую кнопку мыши, но Alt во время движения стрелки при нажатии Ctrl-Q также не работает.

Исследование также показало, что нажатие v в командном режиме вводит визуальный режим и, возможно, это имеет значение, но использование этого, похоже, не помогает ситуации.

C:\Program Files\Vim\vimfiles не содержит ничего, кроме пустой структуры каталога. C:\Documents and Settings\username не содержит конфигурационных файлов vim, а также C:\Documents and Settings\username\My Documents. Другие местоположения C:\Documents and Settings\username, где обычно хранятся конкретные приложения или локальные настройки, также не имеют настроек vim. То же самое верно для% HOMEDRIVE% и для переменных среды.

4b9b3361

Ответ 1

Один из способов визуального выбора блоков столбцов в GVim на Win32, используя только клавиатуру, - нажать Ctrl-Q, отпустить его, а затем нажать и удерживать клавишу Shift, используя клавиши со стрелками, чтобы выбрать блок столбцов.

Почему Ctrl-Q столбчатый выбор ведет себя таким образом, неизвестно, но это не имеет особого значения, поскольку цель заключалась в выборе блоков столбцов с использованием только клавиатуры. В Vim Shift не используется при использовании Ctrl-V для выбора блоков.

:help mswin не упоминает этот нюанс альтернативы Ctrl-V.

Ответ 2

Лучше всего удалить эти строки из vimrc. Они совершенно не нужны и меняют слишком много базовых функций Vim.

Ответ 3

noremap <C-Q> <C-V> в mswin.vim переназначает исходную команду на Ctrl + Q.

Если mswin.vim включен, после нажатия Ctrl + Q указанный режим должен переключиться на Visual Block, и любое перемещение (например, j, l, w) расширяет визуальный выбор, Если это не сработает для вас, возможно, что-то вмешалось.

Являются ли эти команды перемещения переназначенными или есть autocmd on CursorMoved?! Попробуйте отключить свои плагины (vim --noplugin) и большинство частей .vimrc.

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

То, что вы воспринимаете как правильный (и только) способ расширения выделения (со сдвинутыми клавишами курсора), является следствием :set selectmode=key, как это сделано :behave mswin.