2024年3月17日日曜日

ユーザコマンドでパスによる判別実行

特定のファイル/フォルダをパスで判別し、特定のソフトに投げられるようにする。例えばMusicフォルダ以下のフォルダは音楽再生ソフトに投げ、Pictureフォルダ以下のフォルダは画像再生ソフトに投げる、というように。 かつては、「ポチエス」名称による関連付け専用版や、fenrirの機能を使って皆が実現してたやつですね。

準備

以下を編集して取込。

_Command = {
pathdetect = *ifmatch "/D:\\Data\\Music/",%*arg(1) %: %Ob D:\bin\AIMP5\AIMP.exe  %*arg(1) %: *stop
 *ifmatch "/D:\\Data\\Picture/",%*arg(1) %: %Ob D:\bin\NeeView\NeeView.exe %*arg(1) %: *stop
 %Z %*arg(1)
}

やり方

*pathdetect %FCD

とすれば、パスに応じて違うソフトに投げることができる。今回の例であれば、D:\Data\Music以下のフォルダはAIMP5に。D:\Data\Picture以下のフォルダはNeeViewで開くことになる。

2024年3月9日土曜日

一行編集でfenrirっぽいディレクトリ移動

一行編集で、編集中のディレクトリパスの階層を、上がったり下がったりできるようにする。fenrirの挙動を参考にした。

準備

以下をScriptフォルダに保存する。

以下を編集して取込。

-|K_listmode=

K_listmode = {
ENTER    ,*ifmatch -1,%*sendmessage(%N-L,392,0,0) %: %K"@DOWN @ENTER" %: *stop
    %K"@ENTER"
LEFT    ,*dirmode %*name(D,%*getcust(_User:dirpath))
RIGHT    ,*ifmatch -1,%*sendmessage(%N-L,392,0,0) %: %K"@DOWN"
    *dirmode %*name(CD,"%*edittext",%*getcust(_User:dirpath))
}

_Command    = {
dirmode	= *setcust _User:dirpath=%*arg(1)
	*completelist -file:"%*script(%0Script\getsubdir.js,%*arg(1))" -history:e
	*replace ""
jump2listpath    = *setcust _User:dirpath=
    *string o,name=%*input("" -title:"jump2pathlist" -mode:e -k:"*completelist -file:%%*arg(1) -match:6  %%: *mapkey use,K_listmode")
    *ifmatch "o:e,a:d","%so"name"" %: *jumppath "%so"name"" %: *stop
    *ifmatch !0,0%*getcust(_User:dirpath) %: *jumppath "%*getcust(_User:dirpath)\%so"name""
}

やり方

ディレクトリパスを羅列した、以下のようなファイルを用意する。手動で作ってもいいし、zoxideやfenrirscanを利用して作ってもいい。

D:\bin
D:\Data
D:\work
C:\Program Files\7-Zip
C:\Program Files\Ablaze Floorp
C:\Program Files\AMD
C:\Program Files\BraveSoftware
C:\Program Files\Calibre2
C:\Program Files\Common Files
C:\Program Files\CrystalDiskInfo
C:\Program Files\EBWin4(x64)
C:\Program Files\Epic Games
C:\Program Files\Git
C:\Program Files\Internet Explorer

作成したファイルのパスを引数にして、*jump2listpathを実行する。

*jump2listpath %0data\path

すると、このファイルを補完候補リストとした一行編集が起動する。

キーバインドは以下の通り。

  • [RIGHT] サブディレクトリ表示
  • [LEFT] 階層を一つ上へ
  • [ENTER] パスをアクティブなPPcで開く

参考