60

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 confortable for me.

Zsolt Botykai
  • 48,485
  • 14
  • 85
  • 106
alice
  • 2,417
  • 4
  • 22
  • 28

7 Answers7

90

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

alex
  • 1,321
  • 1
  • 13
  • 19
30

Try adding

let NERDTreeMapOpenInTab='\r'

or

let NERDTreeMapOpenInTab='<ENTER>'

to your .vimrc.

richardec
  • 14,202
  • 6
  • 23
  • 49
Zsolt Botykai
  • 48,485
  • 14
  • 85
  • 106
10

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.

Nopik
  • 522
  • 1
  • 4
  • 14
8

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.

chrboesch
  • 141
  • 1
  • 5
2

I use following map to do tab traverse :

nnoremap <C-l> gt
nnoremap <C-h> gT
user3335966
  • 2,575
  • 4
  • 28
  • 33
user3462225
  • 102
  • 1
  • 4
  • Also, would this not conflict the default mapping of moving between split panes? Because I have tried doing exactly this. – Aman Oct 05 '20 at 13:07
2

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
Kostub Deshmukh
  • 2,671
  • 1
  • 22
  • 35
  • Will this be overwritten if I need to update the plugin? I assume it will if I delete then reinstall it. – muad Sep 15 '17 at 14:43
0

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

Community
  • 1
  • 1
Ramin
  • 29
  • 2