有时在工作流程中,我可能想随时随地打开/搜索文件。我想映射一个键(例如F6)来打开和关闭NERDTree(即,我想切换NERDTree视图)。另外,我希望NERDTree在其切换视图中显示隐藏的文件和文件夹,如果可能的话,我也希望它在打开文件进行编辑时自动关闭。谢谢!

评论

您好,欢迎光临本站!请记住,最好提出多个问题,而不是提出不同的问题。即在这里您可以问另一个有关隐藏文件和文件夹的问题,因为主要问题肯定是关于切换的(您已经找到答案了)。另外,不要忘记阅读插件文档,并花几个小时在:h;)

#1 楼

在您的vimrc中添加

nmap <F6> :NERDTreeToggle<CR>


其中<F6>是要映射的键。

评论


效果很好,但是如何同时显示隐藏的文件和文件夹?

– evil_potato
16-10-19在9:04

@evil_potato shift +我将切换隐藏文件。如果要设置为默认行为,请将NERDTreeShowHidden = 1添加到.vimrc中

– Atropo
16-10-19在9:30

@evil_potato也可以在打开文件进行编辑时自动关闭,将NERDTreeQuitOnOpen = 1添加到您的.vimrc中

– dNitro
16-10-19在10:57

#2 楼

打开NerdTree:

:NERDTreeFocus


在nerdtree和文件打开的窗口之间切换:

ctrl + ww (double w)



/>
ctrl + w + (h/j/k/l)


要关闭NerdTree(在nerdtree窗口中):

:q


#3 楼

这将完全满足您的要求:

nnoremap <silent> <expr> <F6> g:NERDTree.IsOpen() ? "\:NERDTreeClose<CR>" : bufexists(expand('%')) ? "\:NERDTreeFind<CR>" : "\:NERDTree<CR>"


#4 楼

如果要关闭NERDTree窗口,请确保您位于NERDTree菜单内。您可以使用ctrl+w切换窗口,然后键入:q关闭NERDTree窗口,以便您将剩下用于编辑代码的窗口。

评论


这正是我在寻找的东西,但是要再次打开它,我是否需要映射另一个键,或者是否有本机快捷方式将再次打开NERDTree?

– Deesbek
18年4月12日在10:01

#5 楼

以下函数跟踪打开的netrw缓冲区并相应地调用Lexplore。将其添加到您的.vimrc并选择您的映射密钥。

let g:NetrwIsOpen=0

function! ToggleNetrw()
    if g:NetrwIsOpen
        let i = bufnr("$")
        while (i >= 1)
            if (getbufvar(i, "&filetype") == "netrw")
                silent exe "bwipeout " . i 
            endif
            let i-=1
        endwhile
        let g:NetrwIsOpen=0
    else
        let g:NetrwIsOpen=1
        silent Lexplore
    endif
endfunction

noremap <silent> <F2> :call ToggleNetrw()<CR>


评论


您能解释一下它比NerdTree附带的NERDTreeToggle命令更好吗?

–statox♦
17年9月12日在8:01

@statox-想法是使用单键(或可能是两个键的组合)打开-而不是键入“:” +“ N” +“ E” +“ R” +“ D” +“ T” +“ r” +“ e” +“ e”,然后按Enter。正是我现在想要的:)

– Pesho hristov
20年1月31日在8:43

@peshohristov如果目标是减少击键次数,我认为在nnoremap :NERDTreeToggle 的行中进行映射可以解决问题,这就是为什么我要求OP提供更多有关其有用性的详细信息回答。

–statox♦
20年1月31日在8:48