Автоматически открывать две панели - PullRequest
0 голосов
/ 08 июля 2019

Я открываю nerdtree, выполняя:

$ mvim .

Если я затем делаю:

:NERDTree

, я получаю две вертикальные панели, отображающие вид дерева.На левой панели, если я перехожу к файлу и нажимаю o, файл открывается на правой панели.С другой стороны, если я перейду к файлу на правой панели и нажму o, файл откроется на правой панели.Это настройка, которую я хочу, но мне не нужно набирать :NERDTree, чтобы туда попасть.

Я пытаюсь настроить nerdtree, чтобы при выполнении:

$ mvim .

две вертикальные панели открываются автоматически.Я нашел этот vimscript:

"Nerdtree--open two windows on startup
autocmd vimenter * call s:CheckToSplitTwoTrees()
function! s:CheckToSplitTwoTrees()
    if argc() != 1 || !isdirectory(argv(0))
        return
    endif

    vsplit

    "there should really be a better way to do this... e.g. :NERDTreeSecondary
    call nerdtree#checkForBrowse(argv(0))
endfunction

, который делает то, что я хочу, однако o на левой панели открывает файлы на левой панели - не на правой панели.Что контролирует, в какой панели o открывает файл?

1 Ответ

1 голос
/ 09 июля 2019

Если вы просто хотите - при запуске - выполнить :NERDTree по первому аргументу, если это каталог, ваша функция в порядке, но просто выполните нужную команду.

"Nerdtree--open two windows on startup
autocmd vimenter * call s:CheckToSplitTwoTrees()
function! s:CheckToSplitTwoTrees()
    if argc() != 1 || !isdirectory(argv(0))
        return
    endif
    exe 'NERDTree '.argv(0)
endfunction

Когда плагин NERDTreeпри установке vim с каталогом автоматически отображается браузер NerdTree (основной, где o открывает файл, заменяющий браузер) вместо обычного браузера netrw.Таким образом, выполнение ':NERDTree '.argv(0) открывает обычное (вторичное) NERDTree, где o открывается на правой панели.

Проверьте также этот связанный вопрос .

...