alice
alice

Reputation: 2625

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

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.

Upvotes: 68

Views: 52698

Answers (7)

Zsolt Botykai
Zsolt Botykai

Reputation: 51693

Try adding

let NERDTreeMapOpenInTab='\r'

or

let NERDTreeMapOpenInTab='<ENTER>'

to your .vimrc.

Upvotes: 31

chrboesch
chrboesch

Reputation: 314

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.

Upvotes: 12

alex
alex

Reputation: 1461

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

Upvotes: 102

Kostub Deshmukh
Kostub Deshmukh

Reputation: 2952

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

Upvotes: 2

user3462225
user3462225

Reputation: 102

I use following map to do tab traverse :

nnoremap <C-l> gt
nnoremap <C-h> gT

Upvotes: 2

Ramin
Ramin

Reputation: 29

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

Upvotes: 0

Nopik
Nopik

Reputation: 542

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.

Upvotes: 10

Related Questions