Автоматически открывать NERDTree на вкладке "КАЖДЫЙ"

Можно ли открыть NERDTree на каждой вкладке нажатием t или T в NERDTree, если да, то как?

7 ответов

Решение

Это, вероятно, не лучший способ, но если вы отредактируете плагин /NERDTree.vim и измените это:

 exec "nnoremap <silent> <buffer> ". g:NERDTreeMapOpenInTab ." :call <SID>openInNewTab(0)<cr>"

к этому:

 exec "nnoremap <silent> <buffer> ". g:NERDTreeMapOpenInTab ." :call <SID>openInNewTab(0)<cr>:NERDTree<cr>"

это изменит привязку 't' в представлении NERDTree, чтобы сначала открыть файл, а затем открыть NERDTree. Обратите внимание, что представления NERDTree не будут синхронизированы.

autocmd VimEnter * NERDTree
autocmd BufEnter * NERDTreeMirror

edit: вышеупомянутая команда, кажется, открывает новую вкладку в буфере NERDTree. Вместо этого используйте это, как упомянуто wejrowski в комментарии ниже:

autocmd BufWinEnter * NERDTreeMirror

Я написал плагин vim, который делает это, а также добавляет некоторые плюсы сверху (т.е. синхронизирует все деревья, обеспечивает содержательные заголовки вкладок, а не заголовки, такие как 'NERD_tree_1' и т. Д.).

Это здесь, на Github: https://github.com/jistr/vim-nerdtree-tabs

autocmd VimEnter * NERDTree
autocmd BufEnter * NERDTreeMirror

autocmd VimEnter * wincmd w

Это немного лучше, чем у Дастина, потому что он помещает курсор прямо на файл, который вы собираетесь редактировать для быстрого редактирования. Спасибо, Дустин за оригинальный пример ^^

Лучшее решение - открыть NERDTree, только если не заданы аргументы командной строки.

" Open NERDTree in new tabs and windows if no command line args set autocmd VimEnter * if !argc() | NERDTree | endif autocmd BufEnter * if !argc() | NERDTreeMirror | endif

NERDTree, например, не поможет, если вы делаете git commit или что-то похожее.

Как насчет того, чтобы переключить это?

" in .vimrc
" NERDTree, Use F3 for toggle NERDTree
nmap <silent> <F3> :NERDTreeToggle<CR>

В OSX вам просто нужно использовать fn-F3 для переключения NERDTree.

Эта проблема была фактически упомянута в официальном файле Readme репозитория, включая три ситуации, связанные с автоматическим открытием NERDTree:


Как я могу автоматически открыть NERDTree при запуске vim?

Воткни это в свой vimrc: autocmd vimenter * NERDTree


Как я могу автоматически открыть NERDTree при запуске vim, если файлы не были указаны?

Воткни это в свой vimrc:

autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif

Примечание: теперь начните vim с простого vimне vim .


Как я могу автоматически открыть NERDTree при запуске vim при открытии каталога?

autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | endif

Это окно зависит от вкладки, то есть оно используется всеми окнами на вкладке. Этот прием также предотвращает скрытие NERDTree при первом выборе файла.

Другие вопросы по тегам