Как увеличить vim под Windows (где CTRL-A не работает…)

StackOverflow https://stackoverflow.com/questions/66919

  •  09-06-2019
  •  | 
  •  

Вопрос

Пока CtrlИкс отлично работает в Vim под Windows, CtrlА выбирает все (ага).

Есть ли способ увеличить число нажатием клавиши под Windows?

Это было полезно?

Решение

Попробуйте Ctrl-NumPad + ?

(отсюда)

Другие советы

Ты можешь сделать CtrlА для увеличения в Windows, открыв файл «mswin.vim» в каталоге vim и найдя раздел, который выглядит следующим образом:

" CTRL-A is Select all
noremap <C-A> gggH<C-O>G
inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
cnoremap <C-A> <C-C>gggH<C-O>G
onoremap <C-A> <C-C>gggH<C-O>G
snoremap <C-A> <C-C>gggH<C-O>G
xnoremap <C-A> <C-C>ggVG

Закомментируйте все эти строки следующим образом:

" CTRL-A is Select all
"noremap <C-A> gggH<C-O>G
"inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
"cnoremap <C-A> <C-C>gggH<C-O>G
"onoremap <C-A> <C-C>gggH<C-O>G
"snoremap <C-A> <C-C>gggH<C-O>G
"xnoremap <C-A> <C-C>ggVG

и CtrlА нажатие клавиши будет увеличиваться.

Это очень хороший вариант, если на вашей клавиатуре нет настоящей цифровой клавиатуры.

Я понимаю, что это старый вопрос, но сегодня я наткнулся на другой вариант, основанный на следующем вопросе.Если заставить gvim действовать так же, как в Linux, CTRL-A будет работать так, как вы ожидаете:

как заставить gvim в Windows вести себя точно так же, как vim консоли Linux?

В _vimrc есть раздел, содержащий следующие элементы.Из-за этого многие управляющие символы ведут себя так же, как в Windows.

set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin

Я закомментировал (с ") строки mswin и set nocompatible линия.Оттуда я добавил set compatible.Это заставляет gvim вести себя так же, как в Linux.Таким образом, мой выглядит примерно так:

set compatible
source $VIMRUNTIME/vimrc_example.vim
"set nocompatible
"source $VIMRUNTIME/mswin.vim
"behave mswin

Я только сегодня научился этому трюку, поэтому, если я не совсем прав в своей информации, пожалуйста, дайте мне знать.

Я изменил решение TMealy так, чтобы CtrlА по-прежнему выбирает все (я считаю это полезным), а Ctrlя приращения (тоже полезно).

noremap <C-I> <C-A>

" CTRL-A is Select all
noremap <C-A> gggH<C-O>G
inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
cnoremap <C-A> <C-C>gggH<C-O>G
onoremap <C-A> <C-C>gggH<C-O>G
snoremap <C-A> <C-C>gggH<C-O>G
xnoremap <C-A> <C-C>ggVG

Аналогичная проблема возникает в GNU/Linux при использовании Vim с mswin.vim.Переназначение Альтернативный вариант+Икс к Ctrl+А до того, как вызвать mswin.vim решил мою проблему.

execute "set <A-x>=\ex"
noremap <A-x> <C-A>
source $VIMRUNTIME/mswin.vim
behave mswin

Сейчас, Альтернативный вариант+Икс и Ctrl+Икс соответственно увеличивать и уменьшать числа в Vim.

Сопоставление с Альтернативный вариант комбинации клавиш в Vim часто не очевидны;подробнее об этом здесь.

Я использую терминал cygwin + screen, поэтому <c-a> захватывается мультиплексором терминала.Я использовал это сопоставление:

:noremap <c-i> <c-a>

Кажется, что CtrlА был сопоставлен где-то при запуске.Как предлагалось ранее, используйте:

отменить отображение <c-x>

Я бы использовал unmap, а не nunmap.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top