# Vimの標準ファイラnetrwは普通に良さそうな話し

こんにちわ ゴリラ.vim (opens new window)を運営しているゴリラです。

みなさんvimでファイラを使っていますか? 多分vim入門したての方はnerdtree (opens new window)というプラグインを入れることが多いかと思います。 ぼくも実際IDEからのvimへ移行しましたが、ファイルツリーがないと落ち着かなくて入れていました。

実は、vimには標準でnetrwというファイラがあります。 そちらについてすこし紹介していきます。

# netrwについて

netrwはvim標準で用意されているプラグインになります。 netrwを使用することでファイラのように、画像のようにディレクトリをブラウジングできます。

image.png

いろんなオプションが用意されていて、それらをカスタマイズすることで更に使いやすくなります。

# netrwを有効にする

netrwはプラグインなので、以下の設定がされていない方は~/.vimrcに設定してください。

filetype plugin on
1

# netrwの基本操作

vim起動時に使用したい場合はvim .でnetrwが立ち上がります。 vim起動済みの場合は:Exでカレントバッファ、:Veで水平分割で開きます。

以下が基本操作になります。

1 2
j 下に移動
k 上に移動
Enter ディレクトリの場合は移動、ファイルの場合はカレントバッファに開く
o 水平分割で開く
v 垂直分割で開く
- 一つ上のディレクトリに移動
u undo、1つ前のディレクトリに戻る
U redo、uで戻る前のディレクトリに戻る
d ディレクトリを作成する
D ディレクトリ・ファイルを削除する
mf ファイルをマークする
mt コピー・移動先のディレクトリをマークする
mc mfしたファイルをmtしたディレクトリにコピーする
mm mfしたファイルをmtしたディレクトリに移動する
I ヘッダの表示トグル
i ファイルツリーの表示形式を変更
p ファイルをプレビューする

ファイルのコピーと移動以外は普通に便利ですね。

# リモート編集

netrwの目玉機能の一つとも言えるリモート編集ですが、 以下のプロトコル (opens new window)に対応しています。

image.png

sshでサーバー上のファイルをちょこっと編集・確認したいときなどに使用できるので便利ですね。 ちなみに、以下のようにするとファイルを編集・保存(してからアップロード)できます。

vim scp://remote-server//home/gorilla/.vimrc
1

これはvim内部でscpコマンドを実行している様なので、scpコマンドは必要と思います。

# カスタマイズ

標準のnetrwのファイルツリーでは、若干見づらいので、見た目をls -laコマンドに近づけます。

" ファイルツリーの表示形式、1にするとls -laのような表示になります
let g:netrw_liststyle=1
" ヘッダを非表示にする
let g:netrw_banner=0
" サイズを(K,M,G)で表示する
let g:netrw_sizestyle="H"
" 日付フォーマットを yyyy/mm/dd(曜日) hh:mm:ss で表示する
let g:netrw_timefmt="%Y/%m/%d(%a) %H:%M:%S"
" プレビューウィンドウを垂直分割で表示する
let g:netrw_preview=1
1
2
3
4
5
6
7
8
9
10

上記の設定をvimrcに追加すれば、冒頭のスクショの表示になります。 個人的に上記設定が一番見やすいのですが、もっと良い設定があるかも知れないのでぜひイジって見ください。

# まとめ

公式マニュアルを見ればもっといろんな事が書かれています。 個人的に、これくらいの機能を知れば困ることはないので、これ以上深掘りはしていません。

興味ある方はぜひ深く掘ってみて、これいいぞってのがあれば教えて頂けると幸いです。