How to open a file in new tab by default in NERDTree?

后端 未结 7 1925
说谎
说谎 2021-02-01 01:10

I want a file to be opened in a new tab when I enter or double click it. I know there is t shortcut but I always open a file in a new tab and enter is more confortabl

相关标签:
7条回答
  • 2021-02-01 01:32

    Add this to the plugin. It needs to be added to a file such as: ~/.vim/nerdtree_plugin/mymapping.vim. The exact location will depend on what plugin manager you use for vim. e.g. for Plugged it is ~/.vim/plugged/nerdtree/nerdtree_plugin/mymapping.vim

    This code adds a mapping for the enter key to open files in a new tab while just expanding/collapsing directories. For the new tabs it also mirrors the NERDTree so it can be shared between tabs.

    call NERDTreeAddKeyMap({
      \ 'key': '<CR>',
      \ 'scope': "Node",
      \ 'callback': 'OpenInNewTab',
      \ 'quickhelpText': 'open node' })
    
    
    " FUNCTION: s:openInNewTab(target) {{{1
    function! OpenInNewTab(node)
      if a:node.path.isDirectory
        call a:node.activate()
      else
        call a:node.activate({'where': 't'})
        call g:NERDTreeCreator.CreateMirror()
        wincmd l
      endif
    endfunction
    
    0 讨论(0)
  • 2021-02-01 01:32

    For the double-click event specifically, it is (only?) possible by slightly changing the NERDtree source code (posted here):

    https://stackoverflow.com/a/31570970/5144840

    0 讨论(0)
  • 2021-02-01 01:37

    s will open the file currently under the cursor in a new vertically split window. Use t to open in a new tab.

    0 讨论(0)
  • 2021-02-01 01:38

    As described in section NERDTreeCustomOpenArgs of the NerdTree help, you can use this option to control the opening behavior of files and directories. Add the following statement to your .vimrc:

    let NERDTreeCustomOpenArgs={'file':{'where': 't'}}
    

    This ensures in this case that only files in a new tab are opened. All other combinations can be found in the help.

    0 讨论(0)
  • 2021-02-01 01:39

    You may want to add https://github.com/Nopik/vim-nerdtree-direnter plugin as well - it fixes the directory opening problem, so enter on directory node will just expand/collapse, not open new tab.

    0 讨论(0)
  • 2021-02-01 01:39

    I use following map to do tab traverse :

    nnoremap <C-l> gt
    nnoremap <C-h> gT
    
    0 讨论(0)
提交回复
热议问题