こんにちわ
ゴリラ.vimを運営しているゴリラです。
みなさんvimでファイラを使っていますか?
多分vim入門したての方はnerdtreeというプラグインを入れることが多いかと思います。
ぼくも実際IDEからのvimへ移行しましたが、ファイルツリーがないと落ち着かなくて入れていました。
実は、vimには標準でnetrwというファイラがあります。
そちらについてすこし紹介していきます。
netrwについて
netrwはvim標準で用意されているプラグインになります。
netrwを使用することでファイラのように、画像のようにディレクトリをブラウジングできます。
いろんなオプションが用意されていて、それらをカスタマイズすることで更に使いやすくなります。
netrwを有効にする
netrwはプラグインなので、以下の設定がされていない方は~/.vimrc
に設定してください。
filetype plugin on
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の目玉機能の一つとも言えるリモート編集ですが、
以下のプロトコルに対応しています。
sshでサーバー上のファイルをちょこっと編集・確認したいときなどに使用できるので便利ですね。
ちなみに、以下のようにするとファイルを編集・保存(してからアップロード)できます。
vim scp://remote-server//home/gorilla/.vimrc
これは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
上記の設定をvimrcに追加すれば、冒頭のスクショの表示になります。
個人的に上記設定が一番見やすいのですが、もっと良い設定があるかも知れないのでぜひイジって見ください。
まとめ
公式マニュアルを見ればもっといろんな事が書かれています。
個人的に、これくらいの機能を知れば困ることはないので、これ以上深掘りはしていません。
興味ある方はぜひ深く掘ってみて、これいいぞってのがあれば教えて頂けると幸いです。