2023/05/17(水)X-Finder → Tablacus Explorer 移行メモ

PC::Memo

今さらながらファイラーをX-FinderからTablacus Explorerに移行したので設定などをメモ。

以前移行を試したときは独自メニューの作り方が分からなくて諦めたけど、今回はちゃんとできました。

tc.png

追加したアドオン

お気に入りバー

お気に入り機能は最初からあり、そのお気に入りを常時表示するためのアドオン。
よく使うフォルダやプログラムを登録しておくと便利。

分割

複数のペインに画面分割できる。
1x1、1x2、2x1、2x2の4種類の切り替えができるが、
常時2x1で使うので2x1以外は無効化した。

次のペインに切り替える

次にペインを示す環境変数「%other%」を使うために必要。

非アクティブペイン

分割したどちらのペインがアクティブになってるのか見た目で分かりやすくする。
(初期状態だと区別できない。)

空フォルダ

空フォルダだけをフィルタして表示してくれる。
空フォルダだけ削除したいときとかに使える。

最近閉じたタブ

うっかり閉じたタブを開き直せる。

タイムスタンプの変更

たまに使う。

フォルダフィルター

各種設定で指定できるフィルターで「.folder」でフォルダをフィルタできる。
(仮想的に拡張子.folderがあるような扱い。)

リンクバー

2つめのツールバー代わりに使用。

ユーザースタイルシート

リンクバーは、「アイコン+ラベル」の形式になっているが、ラベルが不要なので以下のスタイルシートで非表示にした。

#_linkbar label {
  display: none;
}
#_linkbar .linklabel {
  display: none;
}

タブ名を変更

名前の通りタブ名を変更できる。

ステータスバー

名前の通りステータスバーを表示できる。

カウントバー

選択されたファイルやフォルダの個数を表示する。

フォルダ設定

フォルダの表示設定をパス毎に指定できる。
一覧表示しか使わないので以下のように設定。
フィルタの「?:\*」がローカルフォルダで、「\\*」がネットワークフォルダ。

フィルタ
?:\*;\\*
タイプ
JScript
オプション
FV.SetViewMode(3,16);
FV.Columns='"名前" 272 "更新日時" 144 "種類" 120 "サイズ" 80';
FV.GroupBy='System.Null';
FV.SortColumn='名前';

フォーカス項目の枠を表示

X-Finderのときにあった機能なので導入。無くてもそんなに困らない。
フォーカス項目に点線枠が付く。

クラシックスタイル

デフォルトだとクリックでファイル選択できる幅が広すぎて不便だったため導入。
(余白ダブルクリックに「上へ」を機能割り当てていたが、ファイル選択のクリック判定が広すぎてクリックできる余白が無い。)
インストールするとクリック判定がファイル名の長さに限定された。

  • 通常
    list_default.png
  • クラシックスタイル
    list_classic.png

フィルターで色分け

取りあえず実行ファイル「*.com;*.exe;*.bat;*.cmd;*.vbs;*.vbe;*.js;*.jse;*.wsf;*.wsh;*.scr;*.cpl」を赤色にした。
(X-Finderと同じ設定。)

自動バックアップ

一日ごとに設定を自動バックアップしてくれる

ファイルをドロップ

タイプ「Drop files」が使えるようになる。
アプリケーションを起動した後、選択ファイルをドラッグ&ドロップしたのと同じ効果。
LiNameの起動に使いました。

名前の編集禁止

ファイル選択状態でクリックすると名前変更モードになるのを抑止。

名前の変更ダイアログボックス プラス

「名前の編集禁止」でF2キーでの名前変更もできなくなるので、その代わりに導入。

X-Finder

X-Finderのビルトインコマンドや環境変数が使えるようになる。

すべてのタブを閉じる

「すべてのタブを閉じる」が使えるようになる。(「タイプ:タブ」の中に追加されている。)
メニューに自動追加されるわけではないので自分で設定する。

フォント設定

フォントサイズなどをデフォルトから変更したいなら必要。

無効にしたアドオン

フォルダの表示設定を覚える

覚えた設定が「フォルダ設定」の指定より優先されて邪魔だったので。

Segoe Fluent Icons

無効にすると全般アイコンがX-Finderに近いアイコンになる。
(Windows 11だと同じアイコンが取得できないかも。)

更新時の自動整列を抑制

勝手に整列されると嬉しくないことの方が多いので入れてみた。
→ファイル操作(移動など)のパフォーマンスが大幅に悪くなったので外しました。

独自関連付け

「オプション」→「メニュー」→「規定」で設定。

フィルタ

対象拡張子を、「*.jpg;*.jpeg;*.bmp」の様に指定する。

フィルタには正規表現も使えるので、
例えば「"*.zip"が対象。ただし"*.img.zip"は除く」は /^(?!.*\.img\.zip$).*\.zip$/i と指定できる。

実行前確認

「X-Finder」アドオンを導入した状態で以下のように指定。
(「X-Finder」アドオン無しでもできそうな気がするけど、取りあえずこれで。)

フィルタ
*.com;*.exe;*.bat;*.cmd;*.vbs;*.vbe;*.js;*.jse;*.wsf;*.wsh;*.scr;*.cpl
タイプ
X-Finder
オプション
Confirm:"確認","%Focused% を実行しますか?"
"%Focused%"

両方メニュー

右クリックしながら左クリックで表示するメニュー。
「マウス」アドオンで以下のように設定する。
設定先は「一覧」。

  • マウス=21、タイプ=メニュー、オプション=開く
  • マウス=21、タイプ=選択項目、オプション=<プログラムパス>
  • マウス=21、タイプ=新しいタブで開く、オプション=<フォルダパス>
  • マウス=21、タイプ=メニュー、オプション=閉じる

開くと閉じるで挟まれた項目がメニューになる。
フィルタがないので、処理対象の拡張子でメニュー項目の表示・非表示を切り替えることはおそらくできない。

Shift/Ctrl/中クリックメニュー

Shiftを押しながらダブルクリック、Ctrlを押しながらダブルクリック、中クリック、で表示するメニュー。
やり方は両方メニューと同じで以下のマウス指定を使う。

Shiftメニュー
マウス=S11
Ctrlメニュー
マウス=C11
中クリックメニュー
マウス=3

中クリックでメニューを出す場合、「オプション」→「一覧」→「スタイル」→「ホイールクリック選択」を有効にしておいた方が使いやすいかも。

Script

キーアドオンやツールバーアドオンで適当なキーやアイコンに割り当てます。

選択したパスをクリップボードにコピー ""有り

タイプ
JScript
オプション
var Items = FV.SelectedItems();
var a = "";
for (var i = 0; i < Items.Count; i++) {
  a += '"' + Items.Item(i).Path + "\"\n";
}
clipboardData.setData("text", a);

選択したパスをクリップボードにコピー ""無し

タイプ
JScript
オプション
var Items = FV.SelectedItems();
var a = "";
for (var i = 0; i < Items.Count; i++) {
  a += Items.Item(i).Path + "\n";
}
clipboardData.setData("text", a);

選択した名前をクリップボードにコピー

タイプ
JScript
オプション
var Items = FV.SelectedItems();
var a = "";
for (var i = 0; i < Items.Count; i++) {
	a += Items.Item(i).Name + "\n";
}
clipboardData.setData("text", a);

次のフォルダへ移動

タイプ
JScript
オプション
function OpenSameLevelFolder(d) {
  const pid1 = GetFolderView().FolderItem;
  const Items = api.ILGetParent(pid1).GetFolder.Items();
  let aFolders = [];
  for (let i = Items.Count; i-- > 0;) {
    IsFolderEx(Items.Item(i)) && aFolders.push(Items.Item(i));
  }
  aFolders = aFolders.sort(function (a, b) {
    const r = api.CompareIDs(0, a, b);
    return r <= 1 ? r : -1;
  });
  let idx = aFolders.indexOf(aFolders.filter(function (c) { return api.ILIsEqual(pid1, c) }).shift());
  idx = idx + d != idx ? idx + d : -1;
  idx >= 0 && idx < aFolders.length && Navigate(aFolders[idx], SBSP_SAMEBROWSER);
}
OpenSameLevelFolder(1); // 次のフォルダ
参考URL
https://egg.5ch.net/test/read.cgi/software/1555848054/141

前のフォルダへ移動

タイプ
JScript
オプション
function OpenSameLevelFolder(d) {
  const pid1 = GetFolderView().FolderItem;
  const Items = api.ILGetParent(pid1).GetFolder.Items();
  let aFolders = [];
  for (let i = Items.Count; i-- > 0;) {
    IsFolderEx(Items.Item(i)) && aFolders.push(Items.Item(i));
  }
  aFolders = aFolders.sort(function (a, b) {
    const r = api.CompareIDs(0, a, b);
    return r <= 1 ? r : -1;
  });
  let idx = aFolders.indexOf(aFolders.filter(function (c) { return api.ILIsEqual(pid1, c) }).shift());
  idx = idx + d != idx ? idx + d : -1;
  idx >= 0 && idx < aFolders.length && Navigate(aFolders[idx], SBSP_SAMEBROWSER);
}
OpenSameLevelFolder(-1); // 前のフォルダ

フィルターバーのクリア

フィルタを解除するときマウスで操作するのが面倒だったので作成。
適当なキーに割り当てる。

タイプ
JScript
オプション
Addons.FilterBar.Clear(1);

連番リネーム

選択したアイテムを表示されている順で連番にリネーム。
新しいファイル名を作っているところを書き換えればいろいろなパターンで作れる。
処理順が重要ではないリネーム内容なら、最初の行は「var colSelected = FV.SelectedItems();」でも良い。

タイプ
JScript
オプション
var colSelected = FV.Items(SVGIO_SELECTION | SVGIO_FLAG_VIEWORDER);

for(var i=0; i<colSelected.Count; i++) {
  var old_name = colSelected.Item(i).Name;
  var ext = old_name.match(/(\.\w+)$/)[1];
  var new_name = (i+1) + ext;

  if ( old_name != new_name) {
    colSelected.Item(i).Name = new_name;
  }
}

リネームはfso(FileSystemObject)のMoveFileメソッドなどでも可能ですが、リネーム後に選択が外れてファイル表示順のソートも発生してしまいます。
Nameプロパティへの代入ならX-Finder自身によるリネームになるためか、そのような問題は無いようです。
(「更新時の自動整列を抑制」アドオンでも回避できるかも。)

その他X-Finderにあった機能

Ctrl+Kキー:フォルダの作成、Ctrl+Sキー:ファイルの作成。

Tablacus Explorerでも同じキーに割り当てられている。
設定変更は「キー」アドオンから。

F10キー:ファイル名を指定して実行

Tablacus ExplorerでもF10キーに割り当てられている。
設定変更は「キー」アドオンから。

F11キー:パスをクリップボードにコピー

Tablacus ExplorerではF9キーに割り当てられている。(F11キーのデフォルトは最大化トグル。)
設定変更は「キー」アドオンから。

数字キー

必要なら「キー」アドオンで設定。
「すべて」で設定してしまうとフィルタバーなどでの文字入力の邪魔になるので、「一覧」に対して設定した方が良い。