[Vim Plugin] NERDTreeのオススメ設定とコマンド一覧

NERDTreeの設定とコマンドについてまとめました。
標準のファイルエクスプローラも使いにくくは無いですが、NERDTreeによって更にVimが使いやすくなります。

NERDTreeとは

NERDTreeは高機能なファイルエクスプローラで、GUIのIDEで良くある常時表示型のファイルタブを提供してくれます。

NERDTree

NERDTreeの導入方法

NeoBundleでインストールすると楽です。

1
NeoBundle 'scrooloose/nerdtree'

インストールが終わりましたら、Vimを起動して:NERDTrreeまたは:NERDTreeToggleを実行してみてください。
左側に上記画像のようなエクスプローラが表示されます。

ショートカットキーは下に記載していますが、?キーを押下することで表示できます(トグル)


NERDTreeの基本的な使い方

  • ファイルを開く
    基本 enter↵ または o
    水平分割 i
    垂直分割 s
    タブで開く t
  • ディレクトリまたはファイルの操作
    作成 ma → 作成するファイルまたはディレクトリ名 → enter↵
    ※ディレクトリを作成する場合は、最後の文字を/にする
    移動 mm → 移動させるパスを入力 → enter↵
    削除 md → 削除確認(y/n) → enter↵
  • ディレクトリ移動、表示制御
    CWD cd :cd xxx と同様
    表示制御 C カーソル下のディレクトリを親ディレクトリとして表示

コマンドは下記にも記載していますので、そちらも参照ください


NERDTreeのオススメ設定

ブックマークを初期表示

1
let g:NERDTreeShowBookmarks=1

起動時にNERDTreeを表示

1
autocmd vimenter * NERDTree

ファイル名が指定されてVIMが起動した場合はNERDTreeを表示しない

ファイルが指定された場合はNERDTreeを非表示にし、指定なしの場合は表示する設定です。
常にNERDTreeを表示したい場合はこの設定は必要ありません。

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

NERDTreeを表示するコマンドを設定する

キーバインドを設定しておけば、いちいち:NERDTreeとタイプする必要がなくなります。
お好きなキーへどうぞ。

1
map <C-n> :NERDTreeToggle<CR>

拡張子のハイライトを設定する

拡張子毎に異なるハイライトを設定することが出来ます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
" NERDTress File highlighting
function! NERDTreeHighlightFile(extension, fg, bg, guifg, guibg)
exec 'autocmd filetype nerdtree highlight ' . a:extension .' ctermbg='. a:bg .' ctermfg='. a:fg .' guibg='. a:guibg .' guifg='. a:guifg
exec 'autocmd filetype nerdtree syn match ' . a:extension .' #^\s\+.*'. a:extension .'$#'
endfunction
call NERDTreeHighlightFile('py', 'yellow', 'none', 'yellow', '#151515')
call NERDTreeHighlightFile('md', 'blue', 'none', '#3366FF', '#151515')
call NERDTreeHighlightFile('yml', 'yellow', 'none', 'yellow', '#151515')
call NERDTreeHighlightFile('config', 'yellow', 'none', 'yellow', '#151515')
call NERDTreeHighlightFile('conf', 'yellow', 'none', 'yellow', '#151515')
call NERDTreeHighlightFile('json', 'yellow', 'none', 'yellow', '#151515')
call NERDTreeHighlightFile('html', 'yellow', 'none', 'yellow', '#151515')
call NERDTreeHighlightFile('styl', 'cyan', 'none', 'cyan', '#151515')
call NERDTreeHighlightFile('css', 'cyan', 'none', 'cyan', '#151515')
call NERDTreeHighlightFile('rb', 'Red', 'none', 'red', '#151515')
call NERDTreeHighlightFile('js', 'Red', 'none', '#ffa500', '#151515')
call NERDTreeHighlightFile('php', 'Magenta', 'none', '#ff00ff', '#151515')

ディレクトリ表示記号を変更する

1
2
3
let g:NERDTreeDirArrows = 1
let g:NERDTreeDirArrowExpandable = '▶'
let g:NERDTreeDirArrowCollapsible = '▼'

NERDTreeのコマンド一覧

ここからはコマンドの一覧です。
ここに記載してあるコマンドは、?キーを押下することで表示できます。

ファイル関係

コマンド 概要
o 表示
go 表示(移動なし)
t 新しいタブで開く
T open in new tab silently middle-click
i 分割して開く
gi 分割して表示(移動無し)
s 縦分割して表示
gs 縦分割して表示(移動なし)

ディレクトリ関係

コマンド 概要
o ディレクトリを展開する
O ディレクトリを再帰的に展開する
x ディレクトリを閉じる
X 全てのディレクトリを再帰的に閉じる
e ディレクトリを表示する

ナビゲーション関係

コマンド 概要
gP go to root
gp go to parent
gK go to first child
gJ go to last child
g go to next sibling
g go to prev sibling

ファイルシステム関係

コマンド 概要
C 選択しているディレクトリをルートディレクトリとして設定する
u 1階層上のディレクトリへ移動する
U 1階層上のディレクトリへ移動し、移動前のディレクトリを開いたままにする
r カーソル以下のディレクトリを表示更新
R ルートディレクトリ以下を表示更新
m メニューを表示する
cd 選択しているディレクトリをルートディレクトリにへn
CD 作業ディレクトリをルートディレクトリに設定する

表示関係

コマンド 概要
I 隠しファイルを表示する
f フィルタをONにする
F ファイルを表示する
B ブックマークを表示する

その他

コマンド 概要
q NERDTreeを閉じる
A ズーム(NERDTreeペインを最大化/最小化トグル)
? ヘルプを表示する(トグル)

ブックマーク関係

コマンド 概要
o ブックマークを開く
t 新しいタブで開く
T 新しいタブを開き、移動しない
D ブックマークを削除する
:Bookmark [] ブックマークを登録する
:BookmarkToRoot 指定したブックマークをルートにする
:RevealBookmark 指定したブックマークにカーソルを当てる
:OpenBookmark 指定したブックマークを開く
:ClearBookmarks [] 指定したブックマークを削除する
:ClearAllBookmarks 全てのブックマークを削除する