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

Почему <C-a> (CTRL + A) не работает под gvim на окнах?

Я пытаюсь использовать < C-a > (CTRL + A) shorcut под vim для увеличения переменной под курсором. Это отлично работает под управлением vim на Linux. Однако, когда я пытаюсь сделать это в gvim под окнами, он "выбирает все" (т.е. Выделяет или визуально выбирает весь текст в текущем окне). Как я могу изменить это поведение или, альтернативно, как я могу восстановить функциональность переменной приращения (например, возможно, с другим отображением ключей)?

4b9b3361

Ответ 1

Это из-за mswin.vim, который получен по умолчанию _vimrc, сгенерированный при установке vim. Просто переопределите свой _vimrc с помощью .vimrc, который вы используете в * nix или удалите mswin.vim.

Ответ 2

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

nnoremap <kPlus> <C-a>
nnoremap <kMinus> <C-x>

Это переназначает приращение клавишей + на цифровой клавиатуре и уменьшается до клавиши -. Это решение, которое я использовал в своем собственном файле _vimrc в Windows. Он поддерживает совместимость с Windows и легче запоминается, чем оригинальный Ctrl + A/Ctrl + X.

Ответ 3

Vim в Windows имеет специализированные сопоставления клавиш по умолчанию, чтобы сделать ярлыки более "windows-y". Они указаны в файле $VIMRUNTIME\mswin.vim, который загружается через ваш vimrc, если вы не отключили его. Вы можете отредактировать файл mswin.vim(вместо этого вы можете отредактировать копию, заменив vimrc на использование отредактированной копии).

Я не совсем уверен, что это сопоставление Vim по умолчанию, так как единственная ссылка, которую я могу найти в Ctrl + A в файле справки, - это то, что не похоже на то, что вы имеете в виду:

*c_CTRL-A*
CTRL-A      All names that match the pattern in front of the cursor are
              inserted.

чтобы вы могли проверить свой Linux-бокс, чтобы увидеть, не изменились ли какие-либо плагины или что-то по-другому. (Конечно, может быть, я просто не могу найти соответствующую часть помощи Vim.)

Ответ 4

Если вам просто не нравится поведение Ctrl A, но отлично подходит для других действий Windows в VIM (например, Ctrl Z для отмены), просто отключите эту конкретную строку:

  • Отредактируйте указанный файл (c:\Program Files\Vim\vim73\mswin.vim для меня)
  • Найдите абзац, начинающийся с CTRL-A is Select all
  • Подготовить все (6) строки этого абзаца с открывающимися скобками (")
  • Откройте окно GVIM.

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

Счастливое приращение!

Ответ 5

в текущей версии mswin.vim с gvim, файл проверяет значение глобального с именем skip_loading_mswin; Если установлено, остальная часть файла пропускается; поэтому достаточно добавить

let skip_loading_mswin=1

до $HOME/_vimrc, и нормальные привязки vim будут восстановлены при следующем запуске vim.