【问题标题】:Why does < C-a> (CTRL+A) not work under gvim on windows?为什么 <C-a> (CTRL+A) 在 windows 上的 gvim 下不起作用?
【发布时间】:2008-11-14 10:09:18
【问题描述】:

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

【问题讨论】:

标签: windows keyboard-shortcuts vim


【解决方案1】:

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

【讨论】:

  • mswin.vim 被认为是邪恶的。我希望布拉姆不再包括它。
  • 这可以通过 mrswin.vim 解决:vim.org/scripts/script.php?script_id=514
  • @Zathrus - 几行文字怎么会是“邪恶的”,请解释一下。
  • @Idigas - 我会提供一个例子,但我可能会被禁止。
  • 为什么 mswin.vim 是邪恶的?
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

    默认情况下,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 帮助中找不到合适的部分。)

    【讨论】:

    【解决方案4】:

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

    就足够了
    let skip_loading_mswin=1
    

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

    【讨论】:

      【解决方案5】:

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

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

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

      快乐递增!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-27
        • 1970-01-01
        • 1970-01-01
        • 2014-10-08
        • 1970-01-01
        相关资源
        最近更新 更多