Vimメモ : The NERD Treeでディレクトリツリーを表示してファイル操作
インストール
NeoBundleの場合は下記行をvimrc
に追加。
NeoBundle 'scrooloose/nerdtree'
基本的な使い方
:NERDTreeToggle
というコマンドを実行するとディレクトリツリーの表示/非表示を切り替えられるが、毎回コマンドを打つのは大変なので以下のような設定をvimrc
に追加。この場合は<C-n>
キーで切り替えが可能になる。
map <C-n> :NERDTreeToggle<CR>
ディレクトリツリーのキー操作については?
を押すとヘルプが表示されるので、これを参照すればよい。
ファイルノード操作
キー | 説明 |
o または <CR> | 開く |
go | 開く(フォーカスはそのまま) |
t | 新しいタブで開く |
T | 新しいタブで開く(フォーカスはそのまま) |
i | 水平分割で開く |
gi | 水平分割で開く(フォーカスはそのまま) |
s | 垂直分割で開く |
gs | 垂直分割で開く(フォーカスはそのまま) |
ブックマークテーブル操作
よく使うディレクトリをブックマークしておくことができるので便利。ブックマークメニューを表示するにはB
を押す。ブックマークメニューをデフォルトで表示しておきたい場合は下記設定をvimrc
に追加。
let NERDTreeShowBookmarks=1
キー | 説明 |
o | 開く |
t | 新しいタブで開く |
T | 新しいタブで開く(フォーカスはそのまま) |
D | ブックマーク削除 |
ブックマーク用のコマンドを使用して操作する。
コマンド | 説明 |
:Bookmark | 選択したノードをブックマーク(引数でブックマーク名を指定可) |
:BookmarkToRoot | 引数で指定したブックマークをルートにしてツリー表示 |
:RevealBookmark | 引数で指定したブックマークにカーソルを当てる(うまく動かなかった…) |
:OpenBookmark | 引数で指定したブックマークを開く(うまく動かなかった…) |
:ClearBookmarks | 選択したノードのブックマークをクリア(または引数でクリア対象を指定) |
:ClearAllBookmarks | 全てのブックマークをクリア |
ツリーナビゲーション操作
キー | 説明 |
P | ルートへ移動 |
p | 親ディレクトリへ移動 |
K | 最初の子要素へ移動 |
J | 最後の子要素へ移動 |
<C-j> | 同一階層で上に移動 |
<C-k> | 同一階層で下に移動 |
ファイルシステム操作
キー | 説明 |
C | 選択したディレクトリをルートに変更 |
u | 親ディレクトリをルートに変更 |
U | 親ディレクトリをルートに変更(ツリーの状態はそのまま) |
r | 選択したディレクトリをリフレッシュ |
R | ルートをリフレッシュ |
m | メニューを表示 |
cd | CWDを選択したディレクトリに変更 |
CD | ルートをCWDに変更 |
m
キーで表示されるメニューは下図のようなものである。ここで、例えばa
を押して名前を入力後にリターンキーを押せばファイルやディレクトリが作成される。
ツリーフィルタリング操作
キー | 説明 |
I | 隠しファイル表示/非表示 |
f | フィルタによるファイル表示/非表示 |
F | ファイル表示/非表示 |
B | ブックマークメニュー表示/非表示 |
フィルタは以下のような設定をvimrc
に追加。この場合は末尾が.vim
と~
のファイルが表示されなくなる。
let NERDTreeIgnore=['\.vim$', '\~$']
その他
キー | 説明 |
q | NERDTree終了 |
A | NERDTree画面最大化 |
? | ヘルプ表示/非表示 |
設定
Vim起動時に常に表示したい場合は下記行を追加。
autocmd vimenter * NERDTree
ファイル指定なしでVimを起動した場合だけ表示したい場合は下記行を追加。
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
The NERD Treeのウィンドウだけが残るような場合にVimを終了したい場合は下記行を追加。
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
ファイル拡張子により色を変更したい場合は下記リンクを参考に以下のような設定を追加。
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('jade', 'green', 'none', 'green', '#151515') call NERDTreeHighlightFile('ini', '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('coffee', 'Red', 'none', 'red', '#151515') call NERDTreeHighlightFile('js', 'Red', 'none', '#ffa500', '#151515') call NERDTreeHighlightFile('php', 'Magenta', 'none', '#ff00ff', '#151515')
The NERD Treeのプラグイン
The NERD Treeを使いやすくするプラグインがある。使い方は下記リンクで。
wonderwall.hatenablog.com
wonderwall.hatenablog.com
- 作者: DrewNeil,新丈径
- 出版社/メーカー: KADOKAWA / アスキー・メディアワークス
- 発売日: 2014/01/28
- メディア: Kindle版
- この商品を含むブログ (3件) を見る