如何在NERDTree中默认在新选项卡中打开文件?

时间:2011-12-30 15:00:49

标签: vim nerdtree

我想在输入或双击时在新标签页中打开文件。我知道有 t 快捷方式,但我总是在新标签页中打开一个文件,输入对我来说更加舒适。

7 个答案:

答案 0 :(得分:23)

尝试添加

let NERDTreeMapOpenInTab='\r'

let NERDTreeMapOpenInTab='<ENTER>'

.vimrc

HTH

答案 1 :(得分:16)

s 将在新的垂直拆分窗口中打开光标下方的当前文件。 使用 t 在新标签页中打开。

答案 2 :(得分:7)

您可能还想添加https://github.com/Nopik/vim-nerdtree-direnter插件 - 它修复了目录打开问题,因此在目录节点上输入只会展开/折叠,而不是打开新标签。

答案 3 :(得分:5)

如NerdTree帮助的 NERDTreeCustomOpenArgs 部分中所述,您可以使用此选项来控制文件和目录的打开行为。将以下语句添加到您的.vimrc

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

在这种情况下,这确保仅打开新选项卡中的文件。其他所有组合都可以在帮助中找到。

答案 4 :(得分:2)

我使用以下地图做标签遍历:

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

答案 5 :(得分:2)

将此添加到插件中。需要将其添加到文件中,例如:~/.vim/nerdtree_plugin/mymapping.vim。具体位置取决于您用于vim的插件管理器。例如对于Plugged,它是~/.vim/plugged/nerdtree/nerdtree_plugin/mymapping.vim

此代码添加了enter键的映射,以便在展开/折叠目录时在新选项卡中打开文件。对于新选项卡,它还会镜像NERDTree,因此可以在选项卡之间共享。

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

答案 6 :(得分:0)

对于双击事件,具体来说,通过稍微更改NERDtree源代码(在此处发布)可以(仅?):

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