Vim起動時にファイル引数がなければNERDTreeを開く
公式READMEより
" Start NERDTree when Vim is started without file arguments.
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 0 && !exists('s:std_in') | NERDTree | endif
NERDTreeを開く or 閉じる
" Start/Toggle NERDTree
nnoremap <silent> <leader>ne :NERDTreeToggle<CR>
ヘルプ表示を消す
" remove the help line
let NERDTreeMinimalUI=1
キーバインド変更
ディレクトリの出入りのキーバインドを変更。
変数名はplugin/NERD_tree.vimを参照。
" Change keybind
let NERDTreeMapChangeRoot='<C-l>'
let NERDTreeMapUpdir='<C-h>'
デフォルトのキーバインドから奪い取ってhelpにも反映される。
ソート変更
ファイル名順とファイル更新日時降順のソート変更をキーバインド。
" Change sort order
let g:NERDTreeSortOrder=['\/$', '*', '\.swp$', '\.bak$', '\~$', '[[-timestamp]]']
function! Nerd_sort_default() abort
let g:NERDTreeSortOrder=['\/$', '*', '\.swp$', '\.bak$', '\~$']
:NERDTreeRefreshRoot
endfunction
function! Nerd_sort_timestamp() abort
let g:NERDTreeSortOrder=['\/$', '*', '\.swp$', '\.bak$', '\~$', '[[-timestamp]]']
:NERDTreeRefreshRoot
endfunction
autocmd FileType nerdtree nnoremap sd <CMD>call Nerd_sort_timestamp()<CR>
autocmd FileType nerdtree nnoremap sn <CMD>call Nerd_sort_default()<CR>
配列の順に表示される。
'\/$'
はディレクトリ、'*'
は(その他の)全ファイル。
['*', '\/$']
と書けばディレクトリが最後に来る。
自動的に表示更新
" Auto Refresh
autocmd BufEnter NERD_tree_* | execute 'normal R'
autocmd FocusGained NERD_tree_* | execute 'normal R'
NERDTreeのバッファーの上書きを抑止
" Prevent buffer loads within NERDTree
autocmd BufWinLeave * if &filetype == 'nerdtree' | call interrupt() | endif
使い方メモ
-
表示ディレクトリルート(ツリールート)変更
:cd ~/xxx CD
これ、1コマンドでやりたいね。