31

我正在尝试使用vim 下的 < Ca> ( CTRL+ ) 快捷方式来增加光标下的变量。A这在 Linux 上运行的 vim 下运行良好。但是,当我尝试在 Windows 下的 gvim 中执行此操作时,它会“全选”(即突出显示或直观地选择当前窗口中的所有文本)。如何更改此行为,或者如何恢复增量变量功能(例如,可能使用不同的键映射)?

4

5 回答 5

30

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

于 2008-11-14T10:14:08.507 回答
8

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

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

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

于 2012-10-27T10:09:29.933 回答
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 帮助的适当部分。)

于 2008-11-14T10:15:34.607 回答
3

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

let skip_loading_mswin=1

to$HOME/_vimrc和正常的 vim 绑定将在您下次启动 vim 时恢复。

于 2012-01-29T17:37:52.420 回答
3

如果你只是不喜欢CtrlA行为,但对 VIM 中的其他 Windows 行为(如CtrlZ撤消)很好,只需禁用该特定行:

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

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

快乐增量!

于 2012-04-02T14:54:26.737 回答