Автоматически открывать 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 при первом выборе файла.