netrwを起動する方法まとめ Explore系コマンドとgfキーバインド
netrwはvim .で起動するだけのものだと思っていましたが、すでにファイルを開いた状態からでも呼び出せることを知らず、いちいちVimを終了してディレクトリ指定で開き直していた時期があります。起動の入り口は複数あり、それぞれ用途が違います。
ここで扱う起動方法のうち、ディレクトリを指定して開く形はNeovim 0.13で結果が変わります。nvim .で出るのがnetrwではなく、新しく組み込まれたdirという一覧になるためです。Vim側は変わりません。Neovimで0.13以降を使っていて、この記事の操作が見当たらない場合は:Exploreを打つと従来どおりnetrwが開きます。詳しくはNeovim 0.13でnetrwが標準の一覧から外れる件にまとめています。
目次(9項目)
| コマンド/キー | これだけ覚える |
|---|---|
:Lexplore | サイドバー風に開閉をトグル |
:Explore | カレントバッファの位置に開く |
| gf | カーソル下のパス文字列をそのまま開く |
Vim起動時にディレクトリを指定する
vim .
vim /path/to/dir/
ディレクトリを指定してVimを起動すると、netrwがそのディレクトリを起点に開きます。もっとも基本的な入り口ですが、すでにVimを開いている状態からは使えません。
vim . で開いたnetrwの一覧。上の数行がバナーVimを開いた状態から呼び出す:Explore系
| コマンド | 開き方 |
|---|---|
:Explore | カレントバッファの位置に開く |
:Sexplore | 水平分割の上ウィンドウで開く |
:Vexplore | 垂直分割の左ウィンドウで開く |
:Texplore | 新規タブで開く |
:Lexplore | サイドバー風に左側で開閉を切り替える |
この中で特に便利なのが:Lexploreです。一度実行すると左側にnetrwのペインが固定表示され、もう一度実行すると閉じます。他のファイラープラグインのサイドバー表示に近い感覚で使えるので、常時ファイル一覧を出しておきたい人に向いています。パスを指定しなければ、いずれもカレントディレクトリを起点に開きます。一覧の見た目(thin/long/wide/tree)は表示形式の切り替えで切り替えられます。
通常の編集コマンドにディレクトリを渡す
:editや:splitなどのおなじみのコマンドに、ファイルの代わりにディレクトリを渡すだけでもnetrwが起動します。
:edit /path/to/dir/
:split /path/to/dir/
:vertical /path/to/dir/
:tabedit /path/to/dir/
Explore系との違いは、パスを省略した場合の挙動です。Explore系はパス省略でもカレントディレクトリを開きますが、こちらは開きたいパスを明示的に指定しないとnetrwは起動しません。
カーソル下のパス文字列から開く
gf
ソースコードやHTML、シェルスクリプトの中にディレクトリパスの文字列があるとき、そこにカーソルを合わせてgfを押すとそのパスを開けます。読んでいる設定ファイルに書かれたパスをそのまま確認したいときに便利です(分割・タブでの開き方)。
:Lexplore、一時的に開いてすぐ閉じるなら:Explore系、コード中のパスをそのまま開きたいならgf。用途で使い分けると便利です。
:Lexploreを知る前は、ファイル一覧を見るたびにウィンドウを分割してnetrwを開き、確認したら閉じるという操作を繰り返していました。トグルできる:Lexploreに切り替えてからは、常時開きっぱなしにしても邪魔にならず、他のファイラープラグインを入れる動機がかなり減りました。gfのほうも、最初は使いどころが分かりませんでしたが、Dockerfileやシェルスクリプト内のパス参照を追いかける作業で頻繁に使うようになりました。
Lexploreの幅と開く側を決める
サイドバーとして常駐させるなら、幅と開く位置を決めておくと落ち着きます。netrw_winsize は画面に対する割合で、負の値にすると桁数の指定になります。
let g:netrw_winsize = 25 " 画面幅の25%
let g:netrw_winsize = -28 " 28桁で固定
let g:netrw_altv = 1 " 垂直分割を右側に開く
let g:netrw_liststyle = 3 " ツリー表示で開く
桁数で固定しておくと、ウィンドウの大きさを変えてもサイドバーの幅が動きません。ファイル名は左端が読めれば足りることが多いので、割合指定より扱いやすくなります。
履歴ファイルが残るのを止める
netrwは開いたディレクトリの履歴を .netrwhist というファイルに残します。u と U で履歴を行き来するための仕組みですが、使わないなら残らないようにできます。
let g:netrw_dirhistmax = 0 " 履歴を残さない
設定ディレクトリを git で管理している人は、これを入れておくと差分に履歴ファイルが出てこなくなります。共有マシンで作業した痕跡を残したくない場合にも使えます。
netrw を止めるという選択
別のファイラーを入れている場合、netrwが先に起動して邪魔になることがあります。無効にするには、設定ファイルの先頭で読み込み自体を止めます。
let g:loaded_netrw = 1
let g:loaded_netrwPlugin = 1
ただしこれを入れると gx(カーソル下のURLをブラウザで開く)も一緒に使えなくなります。Neovim 0.10以降は gx が本体側に移ったので影響を受けませんが、Vimでは代わりの設定が要ります。プラグインを入れる前に、標準のnetrwで足りるかどうかはファイラーの比較で整理しています。
まとめ
netrwの起動方法は目的に応じて複数用意されています。ファイルを開いたあとの操作はnetrwでファイルを開く方法にまとめています。よく開くディレクトリが決まってきたら、ブックマークに登録しておくとmbとgbだけで戻れるようになり、起動のたびにパスを打ち直す手間が消えます。ブックマークの登録対象は、そのとき開いているディレクトリそのものです。