【问题标题】:NERDTree open in a new tab, as last tab in gvim?NERDTree 在新选项卡中打开,作为 gvim 中的最后一个选项卡?
【发布时间】:2015-09-24 22:38:18
【问题描述】:

在 NERDTree ShiftT 在新选项卡中打开文件,但选项卡位于打开 NERDTree 的选项卡之后。

标签页末尾可以打开新标签页吗?

【问题讨论】:

    标签: vim


    【解决方案1】:

    使用以下内容创建文件~/.vim/ftplugin/nerdtree.vim,然后您将不必编辑NERDTree本身:

    if exists('b:haveRemappedT')
        finish
    endif
    let b:haveRemappedT=1
    let s:oldmap=maparg('T', 'n')
    function! s:LastTab()
        let tab=tabpagenr()
        tabnext
        execute "tabmove ".tabpagenr('$')
        execute "tabn ".tab
    endfunction
    execute 'nnoremap <buffer> T '.s:oldmap.':call <SID>LastTab()<CR>'
    

    【讨论】:

    • @Zyx 它对我不起作用。当我按下 shift + T 键时,我仍然在左侧的新选项卡中获得打开的文件。这就是我所拥有的:pastebin.com/kri7Byvb
    【解决方案2】:

    这是一个通用的自动命令,用于在最后打开所有新标签。它也适用于 NERDTree。

    " move tabs to the end for new, single buffers (exclude splits)
    autocmd BufNew * if winnr('$') == 1 | tabmove99 | endif
    

    【讨论】:

      【解决方案3】:

      将以下内容添加到您的 .vimrc 中

      autocmd BufNew * execute ":tabmove99"
      

      这将始终将新打开的选项卡定位在右侧的位置 99。

      【讨论】:

        【解决方案4】:

        我建议你编辑插件并在:tabnew之前将其重新映射到:tablast

        【讨论】:

        • 不能覆盖.vimrc中的映射吗?
        • 我不确定脚本的阅读顺序。 :scriptnames 会告诉你。如果.vimrc 出现在 NERDTree 之后,您当然可以在 .vimrc 中重新映射它 :)
        • 很高兴了解:scriptnames :) 谢谢
        • 或者你可以创建 ~/.vim/after/plugin/NERD_tree.vim 因为它会在插件之后被读取。顺便说一句,感谢 :scriptnames :)
        猜你喜欢
        • 1970-01-01
        • 2015-01-08
        • 1970-01-01
        • 1970-01-01
        • 2012-04-25
        • 1970-01-01
        • 2013-06-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多