在 MacVim 中切换缓冲区

在 MacVim 中切换缓冲区

我希望能够在 MacVim 中切换缓冲区 (:bn! / :bp!),使用以下快捷方式

Alt(选项)- 左箭头键/右箭头键

到目前为止我还不能做到这一点。

这是我的按键映射,在 Linux 中运行良好,但在 MacOS 中却不行:

map <M-Right> :bn!<CR>
map <M-Left> :bp!<CR>

答案1

Vim 初始化文件按此顺序处理(简化;参见:help initialization):

  1. $VIM/vimrc
  2. $HOME/.vimrc
  3. $VIM/gvimrc
  4. $HOME/.gvimrc

问题是 MacVim 在其$VIM/gvimrc(即…/MacVim.app/Contents/Resources/vim/gvimrc)中映射了 M-Right 和 M-Left(以及其他几个组合键);这将覆盖您在 中对这些组合键所做的任何映射$HOME/.vimrc

如果你检查这个启动文件(即),你会发现可以通过在 中设置特殊变量(为任意值)来:view $VIM/gvimrc抑制这些特定的映射。macvim_skip_cmd_opt_movement$HOME/.vimrc

let macvim_skip_cmd_opt_movement = 1

这将抑制十个默认的 MacVim 映射(左、右、上、下和 BS 的命令和选项)。

或者,您可以将映射放入您的$HOME/.gvimrc(即使您没有用 抑制它们,它们也会覆盖默认的 MacVim 映射macvim_skip_cmd_opt_movement)。

答案2

尝试将其放入你的 .vimrc 文件中:

" Set left and right option/alt keys to be meta keys
set macmeta

然后再次尝试这些映射,看看它们是否有效。如果你想反转它,只需执行:set nomacmeta

如果你也在没有 MacVim 的计算机上使用这个 .vimrc 文件,请改用以下命令:

" Set left and right option/alt keys to be meta keys
if has("gui_macvim")
    set macmeta
endif

相关内容