如何在Windows下增加vim(其中CTRL-A不起作用......)

时间:2008-09-15 21:00:30

标签: vim

虽然 Ctrl X 在Windows下的vim中正常工作, Ctrl A 选择全部(duh)。< / p>

有没有办法在Windows下按键增加一个数字?

7 个答案:

答案 0 :(得分:8)

您可以通过打开vim目录中的'mswin.vim'文件并找到如下所示的部分,使 Ctrl A 在Windows中递增:

" 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 A 按键会增加。

当你的键盘没有真实的数字键盘时,这是一个非常好的选择。

答案 1 :(得分:5)

我意识到这是一个老问题,但我今天根据以下问题遇到了另一个选项。使gvim像在linux上一样,将允许CTRL-A按预期工作:

how to make gvim on windows behave exacly like linux console vim?

_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

我今天刚刚学会了这个技巧,所以如果我的信息不完全正确,请告诉我。

答案 2 :(得分:4)

尝试Ctrl-NumPad +?

from here

答案 3 :(得分:3)

我修改了TMealy的解决方案,以便 Ctrl A 仍然选择所有(我觉得这很有用),而 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

答案 4 :(得分:2)

在将Vim与mswin.vim一起使用时,GNU / Linux下会出现类似的问题。 在唤起mswin.vim之前,重新映射 Alt + X Ctrl + A 解决了我的问题。

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

现在, Alt + X Ctrl + X 分别在Vim中增加和减少数字。

映射到 Alt 键组合在Vim中通常不明显;详细了解此here

答案 5 :(得分:0)

我正在使用cygwin终端+屏幕,所以&lt; c-a&gt;由终端多路复用器捕获。我使用了这个映射:

:noremap&lt; c-i&gt; c为C-A&GT;

答案 6 :(得分:0)

似乎 Ctrl A 已在启动时的某处映射。 如前所述,使用:

取消映射&lt; c-x&gt;

我会使用unmap,而不是nunmap。