虽然CtrlX在 windows 下的 vim 中工作正常,但CtrlA选择所有(duh)。
有没有办法在windows下通过按键来增加一个数字?
您可以CtrlA通过打开 vim 目录中的“mswin.vim”文件并找到如下所示的部分来增加 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
并且CtrlA击键将增加。
当您的键盘没有实数键盘时,这是一个不错的选择。
试试 Ctrl-NumPad + ?
(从这里)
我意识到这是一个老问题,但我今天根据以下问题遇到了另一个选择。让 gvim 像在 linux 上一样运行将允许 CTRL-A 像你期望的那样工作:
如何使 Windows 上的 gvim 的行为与 linux 控制台 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
我今天刚学会这个技巧,所以如果我的信息不完全正确,请告诉我。
我修改了 TMealy 的解决方案,以便CtrlA仍然选择所有(我觉得这很有用),而CtrlI增量(也很有用)。
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
我正在使用 cygwin 终端 + 屏幕,所以 <ca> 被终端多路复用器捕获。我使用了这个映射:
:noremap <ci> <ca>
似乎 CtrlA在启动的某个地方被映射了。如前所述,使用:
取消映射 <cx>
我会使用 unmap,而不是 nunmap。