ファイラー

長いことDFというファイラーを愛用してきた。
その機能に大きな不満もなかったけれど航海日誌jFD2というファイラー(と、その2chスレ)を発見し、ここ数日試用している。
Java(Swing)アプリだが結構軽快に動いてくれる。まあこれはNetBeansを使ってるので驚かない。
DFでやっていたことはほとんどできそうだしマクロでカスタマイズもできるので、しばらく使い込んでみるつもり。
DFのキーアサインを体が覚えてしまっているので、jFD2のキーアサインをDF風に修正するかjFD2に慣れるか考え中。その昔はFDを長年使ってたので、すぐ思い出しそうな気もするが。

マクロの言語はGroovy。
JRubyのがいいなぁ、と当初は思ったのだが、実際にマクロを書いてみるとGroovyで良かったと思う。
Javaオブジェクトの操作がほとんどなのでRuby的な書き方で楽をできる局面が少ないし、Javaのソース*1から使える部分をパクってマクロにするのはJavaの文法に似ているGroovyの方が楽。

以下は、2chに張ったマクロ。
"home"という名前で作ったjFD2のショートカットに一発でジャンプする。


import com.nullfish.lib.vfs.VFS;
shortCutDirPath = (String)jfd.getCommonConfigulation().getParam("shortcut_dir", "")
try{
file=new File(new File(shortCutDirPath),"home.jfdlnk")
homePath=new String(file.readBytes())
home = VFS.getInstance(jfd).getFile(homePath)
if(home != null){
jfd.getModel().setDirectoryAsynchIfNecessary(home, home.getParent(), jfd)
}
}catch(Exception e){
}
文字列リテラルは使わないでクラスで定義されている QuickAccessCommand.SHORTCUT_DIR などをつかうべき、とか、ショートカットファイルの構造に依存しているので、構造が変わってもいいように ShortCutFileクラスを使うべき、とか、突っ込みどころはあるけれどマクロは簡単に書いてなんぼなのでコレで良い。

*1:jFD2はソースが公開されている