⛰️

VS Codeのファイラー拡張機能Yamafilerを公開しました

2023/09/06に公開

はじめに

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

https://marketplace.visualstudio.com/items?itemName=artakase.yamafiler

demo

導入方法

導入方法の具体例は以下の記事で紹介しています。
https://zenn.dev/artakase/articles/a768821ceaf73c

この記事ではargsの設定を{key: value}で表します。

Yamafilerを開く

yamafiler.openFilerを実行するとファイラーのタブが開きます。
ファイラーが表示するフォルダーは自動で決定されます。たとえば、ファイルを開いているときにファイラーを開くと、開いているファイルの親フォルダーを表示します。

開きたいファイルが固定されている場合はpath引数を指定します。たとえば、{"path": "~"}とすればホームフォルダーを開きます。{"path": "${workspaceFolder}"}とすればワークスペースフォルダーを開きます。{"ask": "dialog"}を指定すると開くフォルダーを選択するダイアログが出現します。

{"column": "beside"}を指定すると隣のカラムでファイラーを開きます。

外部でファイル構成が変化した場合はyamafiler.refreshで最新の内容に更新できます。

yamafiler.goToParentで親フォルダーに、yamafiler.enterでカーソル上の子フォルダーに移動します。

ワークスペースの操作

yamafiler.openWorkspaceでカーソル上のフォルダーまたはワークスペースファイルをワークスペースとして開きます。
デフォルトでは現在のウィンドウで、{"forceNewWindow": 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引数を指定します。

ファイル操作

ファイラーで現在表示しているフォルダー内で行う操作です。

  • 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.renameyamafiler.duplicateyamafiler.symlinkのいずれかを実行するとdiff形式のタブが開きます。左側のファイルが元のファイル名で、右側のファイルを編集します。それぞれ複数ファイルのリネーム、複製、シンボリックリンク作成に対応します。
タブを手動で保存すると全ての操作が行われます。保存せずにタブを閉じるとキャンセルです。

クリップボード

ファイルを遠くに移動させる際はクリップボード機能を使います。このクリップボードはファイラー内でファイルパスを記録する専用のものです。

カットyamafiler.cutやコピーyamafiler.copy、シンボリックリンクのターゲット設定yamafiler.targetForSymlinkを実行すると、選択中のファイルのパスがクリップボードに置かれます。
クリップボードの内容を貼り付けたいフォルダーを表示し、そこでyamafiler.pasteを実行してペーストします。

コピーしたフォルダーを貼り付ける際、表示中のフォルダーに同名のフォルダーが存在する場合、Windows以外ではフォルダーのマージも行えます。


ご清読ありがとうございました。

Discussion