2008-11-14 1 views
27

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

+0

см. Это http://stackoverflow.com/questions/66919/how-to-increment-in-vim-under-windows-where-ctrl-a-does-not-work.I думаю, что ответ Павла будет в порядке – 2013-05-09 08:10:28

ответ

27

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

+8

mswin.vim считается злым. Я бы хотел, чтобы Брэм прекратил это включать. – Zathrus 2008-11-14 13:04:44

+1

Это можно обойти с помощью mrswin.vim: http://www.vim.org/scripts/script.php?script_id=514 – 2010-02-17 13:57:02

4

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

1

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

let skip_loading_mswin=1 

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

3

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

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

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

Happy incrementing!

5

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

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

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

Смежные вопросы