Почему <C-a> (CTRL + A) не работает под gvim в windows? - PullRequest
29 голосов
/ 14 ноября 2008

Я пытаюсь использовать ярлык ( CTRL + A ) под vim для увеличения переменной под курсором. Это прекрасно работает под Vim, работающим на Linux. Однако, когда я пытаюсь сделать это в gvim под окнами, он «выбирает все» (то есть выделяет или визуально выделяет весь текст в текущем окне). Как я могу изменить это поведение или, альтернативно, как я могу восстановить функциональность переменной приращения (например, возможно, с другим сопоставлением клавиш)?

Ответы [ 5 ]

30 голосов
/ 14 ноября 2008

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

7 голосов
/ 27 октября 2012

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

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

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

4 голосов
/ 14 ноября 2008

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.)

3 голосов
/ 02 апреля 2012

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

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

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

Счастливого увеличения!

2 голосов
/ 29 января 2012

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

let skip_loading_mswin=1

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

...