1

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

我在堆栈溢出时发现此片段将焦点设置为 nerdtree:

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

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

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

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

4

2 回答 2

5

@FDinoff 已经指明了方向,但实际上您不需要自己实现 NERDTree 焦点。它没有记录,但它是内置的。

试试这个映射:

:nnoremap <leader>ne :NERDTreeFocus<CR>

取自@kev 的这个好答案。

于 2013-08-24T23:59:16.900 回答
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>方向(h、、j或)手动​​移动窗口kl

于 2013-08-24T23:41:06.560 回答