Vim - 没有重置就转到NERDTree的捷径?

时间:2013-08-24 22:58:56

标签: vim macvim nerdtree

我是vim的新手,所以如果真的很蠢,我会提前道歉,但我似乎无法在谷歌上找到它。

我在堆栈溢出时发现这个剪切将焦点设置为nerdtree:

let mapleader = ","
nmap <leader>ne :NERDTree<cr>

但是如果我在运行此命令时扩展了一堆目录它会重置,有没有一种方法它不会重置?

如果有帮助,我正在使用Macvim。

另外,我知道:NERDTreeToggle,但我希望树一直可见。

2 个答案:

答案 0 :(得分:4)

@FDinoff已经表明了方法,但实际上你不需要自己实现NERDTree焦点。它没有文档,但是内置了。

尝试此映射:

:nnoremap <leader>ne :NERDTreeFocus<CR>

摘自this @kev的好回答。

答案 1 :(得分:3)

nerdtree窗口的文件类型为nerdtree

下面是一个函数,它将聚焦第一个具有文件类型书呆子树的窗口,或将光标留在原来的窗口中。

function! FocusNERDtree()
    let initial_win_num = winnr()
    for i in range(1, winnr('$'))
        exec i.'wincmd w'
        if &filetype == 'nerdtree'
            return 1
        endif
    endfor
    exec initial_win_num.'wincmd w'
    return 0
endfunction

所以你可以为此创建一个地图。

nnoremap <leader>nf :call FocusNERDtree()<cr>

或者您可以使用<c-w>和方向(hjkl)手动移动窗口