如何在不聚焦的情况下打开 NERDTree

How to open NERDTree without focusing it

我想在当前缓冲区中执行(通过键盘映射):NERDTreeCWD 和 NERDTreeFind。所以我会这样做:

map <F8> :ProjectRootExe NERDTreeCWD<CR>:NERDTreeFind<CR>

问题是,NERDTreeCWD 聚焦 NERDTree,并使 "NERDTreeFind" 不起作用。

所以我需要在不聚焦的情况下打开 NERDTree。我的想法是调用 :b# 跳转到最后一个缓冲区:

map <F8> :ProjectRootExe NERDTreeCWD<CR>:b#<CR>:NERDTreeFind<CR>

不幸的是 :b# 似乎不起作用,整个在 NERDTree 中。

您可以使用 <C-w>p 返回到之前的 window;在命令行中,等效的 :wincmd p 会派上用场。这样,您就可以将整个映射编写为单个命令行:

nnoremap <F8> :ProjectRootExe NERDTreeCWD<Bar>wincmd p<Bar>NERDTreeFind<CR>

You should use :noremap;它使映射不受重新映射和递归的影响。