为什么< C-A> (CTRL + A)在Windows上的gvim下无法正常工作?

时间:2008-11-14 10:09:18

标签: windows keyboard-shortcuts vim

我正在尝试使用< C-A> ( CTRL + A )在vim下切换以增加光标下的变量。这在Linux上运行的vim下工作正常。然而,当我尝试在Windows下的gvim中执行此操作时,它“选择全部”(即突出显示或在视觉上选择当前窗口中的所有文本)。如何更改此行为,或者如何恢复增量变量功能(例如,可能使用不同的键映射)?

5 个答案:

答案 0 :(得分:30)

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

答案 1 :(得分:7)

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

nnoremap <kPlus> <C-a>
nnoremap <kMinus> <C-x>

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

答案 2 :(得分:4)

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帮助的相应部分。)

答案 3 :(得分:3)

如果您不喜欢 Ctrl A 行为,但对于VIM中的其他Windows行为(例如 Ctrl Z < / kbd> for undo),只需禁用该特定行:

  1. 编辑所述文件(c:\Program Files\Vim\vim73\mswin.vim代表我)
  2. 找到以CTRL-A is Select all
  3. 开头的段落
  4. 使用左括号("
  5. 添加该段落的所有(6)行
  6. 重新打开您的GVIM窗口。
  7. 您仍然可以通过键入ggVG“选择全部”(将光标放在第一行,选择整行,选择直到文档的最后一行)。

    快乐递增!

答案 4 :(得分:2)

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

就足够了
let skip_loading_mswin=1

$HOME/_vimrc,下次启动vim时将恢复正常的vim绑定。