1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

NERDTreeを使い始めた。設定メモ

Last updated at Posted at 2024-03-23

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コマンドでやりたいね。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?