我正在尝试使用vim 下的 < Ca> ( CTRL+ ) 快捷方式来增加光标下的变量。A这在 Linux 上运行的 vim 下运行良好。但是,当我尝试在 Windows 下的 gvim 中执行此操作时,它会“全选”(即突出显示或直观地选择当前窗口中的所有文本)。如何更改此行为,或者如何恢复增量变量功能(例如,可能使用不同的键映射)?
5 回答
这是因为 mswin.vim 源自安装 vim 时生成的默认 _vimrc。只需用您在 *nix 下使用的 .vimrc 覆盖您的 _vimrc,或删除 mswin.vim。
我知道我迟到了,但我想我会分享以下内容:
nnoremap <kPlus> <C-a>
nnoremap <kMinus> <C-x>
这将增量重新映射到+数字小键盘上的键并减量到-键。这是我在自己_vimrc
的 Windows 文件中使用的解决方案。Ctrl它保持了 Windows 的兼容性,也比原来的+ 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 帮助的适当部分。)
在 gvim 提供的当前版本的 mswin.vim 中,该文件检查全局命名的值skip_loading_mswin
;如果设置,则跳过文件的其余部分;因此添加就足够了
let skip_loading_mswin=1
to$HOME/_vimrc
和正常的 vim 绑定将在您下次启动 vim 时恢复。
如果你只是不喜欢CtrlA行为,但对 VIM 中的其他 Windows 行为(如CtrlZ撤消)很好,只需禁用该特定行:
- 编辑所述文件(
c:\Program Files\Vim\vim73\mswin.vim
对我而言) - 找到开头的段落
CTRL-A is Select all
- 在该段落的所有 (6) 行前面加上左括号 (
"
) - 重新打开您的 GVIM 窗口。
您仍然可以通过键入“全选” ggVG
(将光标定位在第一行,选择整行,选择直到文档的最后一行)。
快乐增量!