← Vim研究所

netrwのファイル一覧表示を切り替える thin/long/wide/tree

2019-12-22 公開 ・ 更新: 2026-08-20

netrwはファイル名だけのシンプルな一覧で満足していましたが、他の人の画面でツリー表示になっているのを見て、表示形式を切り替えられることを知りました。1つのキーで4種類を巡回できます。

この記事の表示形式の切り替えはnetrwの機能です。Neovim 0.13でnvim .から開く一覧はnetrwではなくなるので、iを押しても切り替わりません。新しい一覧は表示形式を持たず、ファイル名を並べるだけです。Vim側は変わりません。Neovimで0.13以降を使っていて、この記事の操作が見当たらない場合は:Exploreを打つと従来どおりnetrwが開きます。詳しくはNeovim 0.13でnetrwが標準の一覧から外れる件にまとめています。

目次(9項目)

iキーで表示形式を切り替える

i

netrwのファイル一覧上でiを押すたびに、次の順番で表示形式が切り替わります。

形式内容
thinファイル/ディレクトリ名だけを表示
long名前に加えてファイルサイズと最終更新日時を表示
wide複数列に分けて表示する、最もコンパクトな形式
treeディレクトリの深さを|で示すツリー形式

最初に表示されるのはthinで、名前しか出ないぶん一覧性が高くなります。ファイルサイズや更新日時も見たいときはlong、階層構造を把握したいときはtreeが向いています。

long形式の情報量

long形式はローカルディレクトリなら名前・サイズ・更新日時を、リモートディレクトリの場合はSSH経由で実行したlsコマンドの結果に基づいて表示します。手元のファイルとリモートのファイルとで表示の裏側の仕組みが違う点は、覚えておくと挙動を理解しやすくなります。

tree形式の使い勝手

tree形式では、ディレクトリ名の上でEnterを押すとその場で開閉できます。画面が切り替わらないので、今どの階層を見ているか見失いにくいのが利点です。深い階層まで潜っても、同じ階層にある別のディレクトリへ移動しやすくなります。

netrwをツリー表示にした画面。上部にバナーがあり、その下にディレクトリとファイルが階層構造で並んでいる
Vim 9.1.1752。netrw_liststyle=3(tree)で開いた一覧

デフォルトの表示形式を固定する

毎回iで切り替えるのが面倒なら、設定ファイルにデフォルト値を書いておけます。

let g:netrw_liststyle = 3   " 0:thin 1:long 2:wide 3:tree

ツリー表示を最初から使いたい人は3を指定しておくと安心です。ただしlong形式とwide形式には、ファイル名の末尾に空白が含まれる場合や、名前の中に連続した空白がある場合にうまく扱えないという制約があります。そうしたファイルを扱う可能性がある環境ではthinを基本にしておくほうが安全です。

要点:一覧性重視ならthin、詳細情報が欲しいならlong、階層を俯瞰したいならtreeです。g:netrw_liststyleでデフォルトを固定できますが、ファイル名に空白が絡む環境ではthinが無難です。
使ってみて

最初はtree形式をデフォルトに固定していましたが、ファイル数が多いディレクトリでは逆に見づらく感じることがあり、結局thinに戻しました。表示形式は環境やディレクトリの規模によって向き不向きがあるので、固定するよりiでその場で切り替える運用のほうが自分には合っていました。long形式のリモート表示が地味に重いと感じる場面もあったので、SSH越しの作業では基本thinのままにしていて、tree形式はローカルの小規模なディレクトリを見るときだけ使うようにしています。

並び順を変える

表示形式とは別に、並び順も変えられます。一覧の上で s を押すたびに、名前順・更新日時順・サイズ順・拡張子順が順に切り替わります。r を押せば昇順と降順が入れ替わります。

let g:netrw_sort_by = "time"      " name / time / size / exten
let g:netrw_sort_direction = "reverse"

更新日時の降順にしておくと、直前に触ったファイルが常に上に来ます。作業中のディレクトリを何度も開き直す使い方では、名前順よりこちらのほうが目的のファイルに早く辿り着けます。

隠しファイルと除外の設定

ドットで始まるファイルの表示は gh で切り替えられます。設定ファイルを触るときは表示、普段は非表示、という使い分けができます。

let g:netrw_list_hide = '^\..*,\.pyc$,__pycache__'
let g:netrw_hide = 1              " 0:全部表示 1:隠す 2:隠したものだけ

netrw_list_hide はカンマ区切りの正規表現で、ビルド生成物やキャッシュを一覧から追い出すのに使えます。netrw_gitignore#Hide() という関数を使えば .gitignore の内容をそのまま反映させることもできます。

tree形式で気をつけること

tree形式は階層を保ったまま開閉できて見やすい一方、netrwの中では最も動きが特殊です。開いた階層の状態が一覧の再描画で失われることがあり、ディレクトリの作成や削除をしたあとに表示がずれることがあります。Ctrl-l で一覧を再読み込みすると直ります。

また、深い階層まで開いたまま放置すると1画面に収まらなくなります。tree形式は「いま触っている数階層」を見るためのもので、リポジトリ全体を俯瞰する用途には向きません。全体を眺めたいときは、一覧を出すより :find や曖昧検索で目的のファイルを直接開くほうが速く済みます。

まとめ

netrwの一覧表示はiキーで4種類を巡回できます。tree形式は階層把握に強いですが、ファイル名の制約があるlong/wideとは特性が違う点を覚えておくと安心です。一覧の上に出るバナーが場所を取ると感じたら、バナーは消せます。そもそもnetrwをどう開くかは起動方法のまとめで扱っています。表示形式はg:netrw_liststyleに書いておくと、次からその形で開きます。

関連記事

← Vim研究所 トップへ戻る