cd したら ls するという記事をまんま Vim で実装しました。Vim で cd
したときに、ファイルリスト一覧を取得したいときはあると思います。そのたびに、Vim を終了してシェルから ls
してというのは二度手間ですよね
Vim 内で :!ls
するのは外部依存で挙動としては好ましくないので、内部的に解決しつつ自動で ls
できるプラグインを紹介します。
Vimでcdしたときにそのディレクトリの中身を自動でリストアップするプラグイン作った
:cd
だけでなく、:lcd
や :chdir
などでもいいです。もちろん、その省略形も可です。
また :Ls
コマンドは内部的でシェルライクな ls
を可能にします。引数を省略すればカレントディレクトリですが、与えてやれば存在する引数先のディレクトリ内のファイルを取得します。ここらへんは、シェルの ls
と同じです。
:Ls!
とすれば、ファイル一覧の表示方法がスペース区切りから改行区切りに変わります。
2つの課題があります。
- スペースを含んだパスを渡されると意図した挙動でなくなる
- 移動先ディレクトリ内にあるファイル数が膨大の場合、自動で
ls
されない。おそらくPress ENTER or type command to continue
になるため。cd
するたびにタイプが必要になるのは本末転倒なのでこの仕様はよしとできるが、このままの挙動ではバグのようにみえるので、その旨を警告表示したい