虽然CtrlX在Windows下的vim中可以正常工作,但CtrlA选择所有(duh)。
在Windows下是否可以通过击键来增加数字?
您可以通过在vim目录中打开\\'mswin.vim \\'文件并找到如下所示的部分来使CtrlA在Windows中递增:
1 2 3 4 5 6 7
| " 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 |
注释所有这些行,如下所示:
1 2 3 4 5 6 7
| " 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 |
和CtrlA击键将增加。
当您的键盘没有实号键盘时,这是一个非常不错的选择。
我意识到这是一个古老的问题,但是我今天基于以下问题遇到了另一个选择。使gvim像在Linux上那样运行,将使CTRL-A可以按您期望的那样工作:
如何使Windows上的gvim表现得像Linux控制台vim一样?
_vimrc的一部分包含以下各项。这些导致许多控制字符的行为像在Windows上一样。
1 2 3 4
| set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin |
我用"注释掉了mswin行和set nocompatible行。从那里,我添加了set compatible。这会导致gvim像在Linux上那样工作。因此,我的样子如下:
1 2 3 4 5
| set compatible
source $VIMRUNTIME/vimrc_example.vim
"set nocompatible
"source $VIMRUNTIME/mswin.vim
"behave mswin |
我今天刚刚学到了这个技巧,所以如果我对信息的理解不完全正确,请告诉我。
尝试使用Ctrl-NumPad吗?
(从这里开始)
我修改了TMealy的解决方案,以便CtrlA仍然全选(我觉得这很有用),而CtrlI递增(也很有用)。
1 2 3 4 5 6 7 8 9
| 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 |
将Vim与mswin.vim一起使用时,在GNU / Linux下也会发生类似的问题。
在唤起mswin.vim之前将Alt X重映射到Ctrl A解决了我的问题。
1 2 3 4
| execute"set <A-x>=\\ex"
noremap <A-x> <C-A>
source $VIMRUNTIME/mswin.vim
behave mswin |
现在,Alt X和Ctrl X分别在Vim中增加和减少。
映射到Alt组合键在Vim中通常不明显;在此处阅读有关此内容的更多信息。
似乎CtrlA在启动时已映射到某处。
如前所述,使用:
取消映射
我会使用unmap,而不是nunmap。
我正在使用cygwin终端屏幕,因此被终端多路复用器捕获。我使用了此映射:
:noremap