为什么在Windows下,<Ca>(CTRL + A)不能在gvim下工作?

我试图使用vim下的<Ca>( CTRL + A )shorcut在光标下增加一个variables。 这在Linux下运行的vim下工作正常。 但是,当我尝试在gvim下的窗口中“select所有”(即突出显示或视觉select当前窗口中的所有文本)。 我怎样才能改变这种行为,或者我怎样才能恢复增量variablesfunction(例如也许用不同的键映射)?

Solutions Collecting From Web of "为什么在Windows下,<Ca>(CTRL + A)不能在gvim下工作?"

这是因为mswin.vim是由安装vim时生成的默认_vimrc生成的。 只需使用在* nix下使用的.vimrc覆盖您的_vimrc,或者删除mswin.vim。

我知道我迟到了,但我想我会分享以下内容:

nnoremap <kPlus> <Ca> nnoremap <kMinus> <Cx> 

这会将增量重新映射到数字键盘上的+键并递减到-键。 这是我在Windows自己的_vimrc文件中使用的解决方案。 它保持Windows的兼容性,比原来的Ctrl + A / Ctrl + X更容易记忆。

Windows上的Vim默认使用了专门的键映射,使快捷键更加“windows -y”。 这些是在$ VIMRUNTIME \ mswin.vim文件中指定的,它通过vimrc加载,除非你禁用它。 你可以编辑mswin.vim文件(你可能想编辑一个副本,改变你的vimrc来使用你编辑的副本)。

我不完全确定这是一个默认的Vim映射,因为在帮助文件中,我可以在Ctrl + A上找到唯一的引用是这个,这似乎不是你所指的:

 *c_CTRL-A* CTRL-A All names that match the pattern in front of the cursor are inserted. 

所以你可能想要检查你的Linux机器,看看是否有任何插件或任何东西改变了键映射。 (当然,也可能是我找不到Vim帮助的适当部分。)

如果你只是不喜欢Ctrl A的行为,但在VIM中的其他窗口行为(如Ctrl Z撤消)也可以,只要禁用该特定的行:

  1. 编辑所说的文件( c:\Program Files\Vim\vim73\mswin.vim
  2. 找到以CTRL-A is Select all开始的段落CTRL-A is Select all
  3. 在该段落的所有(6)行前加上括号( "
  4. 重新打开您的GVIM窗口。

您仍然可以通过输入ggVG (位于第一行的光标,选择整行,选择直到文档的最后一行)来“全选”。

快乐递增!

在gvim提供的mswin.vim的当前版本中,文件检查名为skip_loading_mswin的全局值; 如果设置,文件的其余部分将被跳过; 因此添加就足够了

 let skip_loading_mswin=1 

$HOME/_vimrc和正常的vim绑定会在下一次启动vim的时候被恢复。