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
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
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
s will open the file currently under the cursor in a new vertically split window. Use t to open in a new tab.
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.
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.
I use following map to do tab traverse :
nnoremap <C-l> gt
nnoremap <C-h> gT