【问题标题】:Prevent certain command mappings while in NERDTree window in Vim在 Vim 的 NERDTree 窗口中防止某些命令映射
【发布时间】:2012-04-30 07:24:45
【问题描述】:

我的.vimrc 文件中映射了以下键:

noremap <silent> <C-h> :bprev<CR>
noremap <silent> <C-l> :bnext<CR>

他们执行的命令由buftabs script提供。

我想要做的是阻止在 NERDTree 拆分时执行这些键映射。这样做的原因是,如果在 NERDTree 中运行命令,则会在拆分中加载文件缓冲区。然后,要修复它,需要关闭并再次打开窗口。

这是与another question 中解释的类似问题,但通过配置插件解决了该问题,而 buftabs 脚本没有这样的选项。

【问题讨论】:

    标签: vim nerdtree


    【解决方案1】:

    为了禁用某些缓冲区中的映射,可以定义 相同键序列的缓冲区本地映射,覆盖 无操作的原始映射:

    :autocmd FileType nerdtree noremap <buffer> <c-h> <nop>
    :autocmd FileType nerdtree noremap <buffer> <c-l> <nop>
    

    (有关详细信息,请参阅 :help :map-arguments:help &lt;nop&gt; 分别为&lt;buffer&gt;&lt;nop&gt;。)

    【讨论】:

      【解决方案2】:

      我通过查看 ib. 的解决方案更新了我的 vimrc。

      autocmd FileType nerdtree noremap <buffer> <A-PageDown> <ESC>:wincmd w <bar> bnext<CR>
      autocmd FileType nerdtree noremap <buffer> <A-PageUp> <ESC>:wincmd w <bar> bprevious<CR>
      

      它返回上一个窗口并执行命令。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-11
        • 2012-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-08
        • 2016-01-08
        相关资源
        最近更新 更多