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

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

  •  09-06-2019
  •  | 
  •  

尽管 控制键X 在windows下的vim中工作正常, 控制键A 选择全部(废话)。

windows下有没有办法通过按键来增加数字?

有帮助吗?

解决方案

尝试按 Ctrl-数字键盘 + ?

(从这里)

其他提示

你(们)能做到 控制键A 在 Windows 中通过打开 vim 目录中的“mswin.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

控制键A 击键次数将增加。

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

我意识到这是一个老问题,但今天我根据以下问题遇到了另一个选择。让 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的解决方案,以便 控制键A 仍然选择全部(我发现这很有用),而 控制键 增量(也有用)。

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。重新映射 替代+X控制键+A 在唤起之前 mswin.vim 解决了我的问题。

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

现在, 替代+X控制键+X 分别增加和减少 Vim 中的数字。

映射到 替代 Vim 中的组合键通常不明显;阅读更多相关内容 这里.

我使用的是 cygwin 终端 + 屏幕,因此 <c-a> 被终端多路复用器捕获。我使用了这个映射:

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

看来 控制键A 在启动时被映射到某个地方。正如之前建议的,使用:

取消映射 <c-x>

我会使用 unmap,而不是 nunmap。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top