58

我希望在输入或双击文件时在新选项卡中打开文件。我知道有t快捷方式,但我总是在新选项卡中打开一个文件,然后输入对我来说更舒服。

4

7 回答 7

87

s将在一个新的垂直分割窗口中打开当前光标下的文件。使用t在新选项卡中打开。

于 2018-07-02T18:31:21.630 回答
29

尝试添加

let NERDTreeMapOpenInTab='\r'

或者

let NERDTreeMapOpenInTab='<ENTER>'

到你的.vimrc.

于 2011-12-30T21:08:39.017 回答
10

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

于 2014-10-01T08:11:24.113 回答
8

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

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

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

于 2020-02-29T13:28:31.893 回答
2

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

此代码添加了一个映射,用于输入键以在新选项卡中打开文件,同时只是展开/折叠目录。对于新选项卡,它还镜像 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
于 2017-02-01T01:29:21.323 回答
2

我使用以下地图进行制表符遍历:

nnoremap <C-l> gt
nnoremap <C-h> gT
于 2015-12-02T02:29:29.063 回答
0

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

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

于 2015-07-22T18:22:23.320 回答