VS Codeのファイラー拡張機能Yamafilerを公開しました
はじめに
VS Codeにdefx.nvimのようなファイラーが無くて不便だったので拡張機能Yamafilerを作りました。この記事で使い方を解説します。

導入方法
導入方法の具体例は以下の記事で紹介しています。
この記事ではargsの設定を{key: value}で表します。
Yamafilerを開く
yamafiler.openFilerを実行するとファイラーのタブが開きます。
ファイラーが表示するフォルダーは自動で決定されます。たとえば、ファイルを開いているときにファイラーを開くと、開いているファイルの親フォルダーを表示します。
開きたいファイルが固定されている場合はpath引数を指定します。たとえば、{"path": "~"}とすればホームフォルダーを開きます。{"path": "${workspaceFolder}"}とすればワークスペースフォルダーを開きます。{"ask": "dialog"}を指定すると開くフォルダーを選択するダイアログが出現します。
{"column": "beside"}を指定すると隣のカラムでファイラーを開きます。
外部でファイル構成が変化した場合はyamafiler.refreshで最新の内容に更新できます。
yamafiler.goToParentで親フォルダーに、yamafiler.enterでカーソル上の子フォルダーに移動します。
ワークスペースの操作
yamafiler.openWorkspaceでカーソル上のフォルダーまたはワークスペースファイルをワークスペースとして開きます。
デフォルトでは現在のウィンドウで、{"forceNewWindow": true}が指定されていれば新しいウィンドウで開きます。
{"resolveSymlinks": true} を指定するとシンボリックリンクを解決します。
yamafiler.addToWorkspaceは選択中のフォルダーを現在のワークスペースに追加します。
ファイルを開く
カーソルをファイルの行に合わせてyamafiler.enterを実行するとそのファイルを開きます。
{"column": "beside"}を指定すると隣のカラムで開きます。
画像や音声など、テキストファイル以外のファイルを開くこともできます。{"binaryPattern": "*.{jpg,jpe,jpeg,png,bmp,gif,ico,webp,avif,mp3,wav,ogg,oga,mp4,webm}"}とすれば、パターンに当てはまる形式のファイルはバイナリ形式で開きます。vscode-pdfのようにpdfファイルをVS Code上で閲覧できる拡張を使用している方は、パターンにpdfを追加すると便利です。
{"externalPattern": "*.{html,docx}"}とすると、パターンに当てはまる名前のファイルは外部アプリケーションで開きます。
OSデフォルトのエクスプローラーで開きたいフォルダーがあれば、externalFolderPattern引数を指定します。
{"resolveSymlinks": true} を指定するとシンボリックリンクを解決します。
ファイル操作
ファイラーで現在表示しているフォルダー内で行う操作です。
-
yamafiler.newFolder- 名前を入力して新しいフォルダーを作成します。 -
yamafiler.newFile- 名前を入力して新しいファイルを作成します。 -
yamafiler.rename- 選択されているフォルダーまたはファイルの名前を変更します。 -
yamafiler.duplicate- 選択されているフォルダーまたはファイルを入力した名前で現在のフォルダーに複製します。 -
yamafiler.symlink- 選択されているフォルダーまたはファイルへのシンボリックリンクを作成します。 -
yamafiler.delete- 選択されているフォルダーまたはファイルを削除します。
選択
複数のファイルを選択して一度に操作する方法は二つあります。
- 複数行を範囲選択した状態でコマンドを実行する。
- *マークを複数の行に付けた状態でコマンドを実行する。
-
yamafiler.toggleSelectionで選択範囲の行の*マークを付け外しします。 -
yamafiler.toggleSelectionAllで全選択全解除もできます。
-
バッチファイル
バッチファイルで複数のファイルを一度に操作できます。
複数の新規ファイル
yamafiler.newMultipleFilesでフォルダーやファイルを一度に複数作成できます。
新しいファイルが開くので、エディターにフォルダー名とファイル名を入力します。フォルダー名は終わりに / を入力します。例:
foldername1/
foldername2/
filename1.txt
filename2.txt
filename3.txt
タブを手動で保存すると全てのフォルダーやファイルが作られます。保存せずにタブを閉じるとキャンセルです。
複数ファイルのリネーム・コピー・シンボリックリンクの作成
複数のフォルダーやファイルを選択した状態でyamafiler.rename、yamafiler.duplicate、yamafiler.symlinkのいずれかを実行するとdiff形式のタブが開きます。左側のファイルが元のファイル名で、右側のファイルを編集します。それぞれ複数ファイルのリネーム、複製、シンボリックリンク作成に対応します。
タブを手動で保存すると全ての操作が行われます。保存せずにタブを閉じるとキャンセルです。
クリップボード
ファイルを遠くに移動させる際はクリップボード機能を使います。このクリップボードはファイラー内でファイルパスを記録する専用のものです。
カットyamafiler.cutやコピーyamafiler.copy、シンボリックリンクのターゲット設定yamafiler.targetForSymlinkを実行すると、選択中のファイルのパスがクリップボードに置かれます。
クリップボードの内容を貼り付けたいフォルダーを表示し、そこでyamafiler.pasteを実行してペーストします。
コピーしたフォルダーを貼り付ける際、表示中のフォルダーに同名のフォルダーが存在する場合、Windows以外ではフォルダーのマージも行えます。
ご清読ありがとうございました。
Discussion