Как увеличить vim под Windows (где CTRL-A не работает…)
-
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.