2014年8月30日土曜日

PPxで画像管理ソフト的な動きをする(同階層のフォルダを閲覧)


あいさつ



画像ファイルやメモファイルを閲覧しているとき、隣り合ったフォルダを順番に移動したい、という場合がある。

画像フォルダ
├─gununu
├─てさ部
├─ひだまりスケッチ
└─輪るピングドラム

こんな風に画像ファイルをフォルダ分けして保存しているとして、ひだまりフォルダを閲覧してるけど隣のピングドラムフォルダを閲覧したい、あるいは何か気に入ったファイルがないか、画像フォルダ内のフォルダを順番に閲覧したい、という場合です。

これを、 2画面PPxで、左右の窓で役割を分担することで行う。

やり方



以下を編集して取込

E_preview = { ** comment **
:DIR ,*execute ~,*jumppath %FCD
}

E_preview2 = { ** comment **
:DIR ,*execute C,*jumppath %FCD %: %KC "@N"
}

KC_main = { ; PPcメイン窓
^UP ,%K "@UP" %: %ME_preview
^DOWN ,%K "@DOWN" %: %ME_preview
}

KV_main = { ; PPcメイン窓
^UP ,%K~ "@UP" %: *execute ~,%%ME_preview2
^DOWN ,%K~ "@DOWN" %: *execute ~,%%ME_preview2
}

左窓(反対窓にカーソル下のフォルダの内容を表示)



左窓で、内容を順次表示させたいフォルダがあるフォルダを開きます。以下は、画像フォルダにあるフォルダの内容を順次確認したい、という場合。



左窓でCtrl+カーソルキー下を押す。すると、左窓カーソル下のフォルダの内容が、右窓に表示される。





このように、隣り合っているフォルダの内容を簡単に閲覧することができる。



ビューア(PPvからフォルダ切り替え)


先のやり方で気になったファイルをgununuフォルダに見つけ、右窓に行って画像ファイルをPPvで閲覧しているとする(参考:PPvをPPcと連動(ID一対一対応をやめる))。その時に、「ぐぬぬ画像はもういいや、同じ階層の別フォルダの画像ファイルを見たい」と思ったら、PPv上でCtrl+カーソル下を押す。

すると左窓のカーソルが下がり、左窓カーソル下のフォルダの内容が右窓に表示される。かつPPvの表示ファイルも切り替わる。







さっき左窓でやってたことをPPv上からやってるだけですね。


テキストファイルの場合


画像管理の他には、テキストファイルで書いたメモの閲覧にも使えそう。フォルダ分けしてあるメモを、順次見ていくことができる。





1画面と2画面


今回やったのは、2画面という特性がないとできないことだった。他には、「左右窓で同ファイルが無いか調べてマーク」というのも2画面で無いと不可能ですね。

ファイル移動やコピーが直感的にできて楽、という以外にも、2画面ということ自体を生かしたカスタマイズが他にもあるかもしれない。意識的に追求してみてもいいかも、と思った。

ちなみに、1画面でこれを実現しようとするなら、次のようなスクリプトを使う。

//!*script

fs = PPx.CreateObject("Scripting.FileSystemObject");
fn = PPx.Extract("%1");
currentDir = fs.GetFolder(fn);

// 同階層のフォルダリストを取得
e = new Enumerator(currentDir.ParentFolder.SubFolders); 
flds = new Array(); 
for( ; !e.atEnd(); e.moveNext()) {
  fuga = fs.GetFolder(fs.BuildPath(currentDir.ParentFolder.Path, e.item().Name));
  if (fuga.Attributes <= 17) flds.push(e.item().Name);
} 

// アルファベット順にソート
flds.sort(function(a, b){return a.toLowerCase()>b.toLowerCase()?1:-1;}); 

// カレントフォルダがリストの何番目かを計算
for(i=0; i < flds.length; i++) {
  if( flds[i] == currentDir.Name ) break;
} 

// 次のフォルダのフォルダ名をリストから取得
nextDir = flds[Math.min(i+1, flds.length-1)];

// カレントフォルダがリスト最後なら最初にループ
if (nextDir == currentDir.Name)nextDir = flds[0];
hoge = fs.GetParentFolderName( fn );

// パスを変更
PPx.Execute("*jumppath \"" + fs.BuildPath(hoge, nextDir) + "\"");

2chにあったやつほぼそのままです(Paper Plane xUI Part.4の219)。サブフォルダの一覧を取得し、同階層の次のフォルダを表示するスクリプト。ただ、PPcのソート状態を反映させることなどは無理で、少し使い勝手が悪い。

2014年8月28日木曜日

PPvからメモを取る


あいさつ


自分の書いたメモなり他の文書なりをPPvで閲覧している時、何かを思いついてメモを取りたい時がある。

その時、これまでは一々howmフォルダまで戻ってから、ファイル作成メニューを出してメモを作成。そしてまたさっきまで作業をしていたフォルダを戻る、ということをしていた。

面倒だし、億劫になってメモを取る枷になるのでこれを克服する。例によって2ストロークキーを利用。

やり方


予め、Paper Plane xUI  Key Moduleをダウンロードして、その中にあるPPXKEY.DLL(64bitならPPXKEY64.DLL)をPPxフォルダに入れておきましょう。

以下を編集して取込

-|K_ppv =

KV_main = { ; PPcメイン窓
^X ,*setnextkey K_ppv
}

K_ppv = { ** comment **
H ,%Ob D:\bin\xyzzy\xyzzy.exe -e (howm-create2dir) G:\howm
^Z ,%KC"@BS @N"
^X ,*script %0\Script\PPvChangeDir.js
}


K_ppv(2ストローク目)の下2つはPPv上で階層移動でやったコマンドです。一番上が今回追加したコマンド。G:\howmにhowm形式でファイルを作成する(参考:Memo on the Electron - MoE用設定)。パスのところは適当に読み替えてください。

これで、PPv上でCtrl+Xを押してからCtrl+Hを押すことで、howmフォルダにhowmファイルを作成することができる。 いつでもどこでも思いついたことをメモにできて、かつ、それまでしていた作業を中断することもない。



以前は2ストロークキーを使わずにやってたけど(参考:PPvからエディタを開く)、結局はコマンドを忘れて使わなくなった。
「何かやりたいことがあればとりあえずCtrl+Xを押してみて、次に何するか考える」というのがいいのかもしれない。「何かしたいことがあればとりあえずランチャを起動してみて、それから考える」というのに近いでしょうか?僕は、「なんかしよう」という漠然とした意識状態で反射的にCtrl+Spaceを押し、fenrirを起動。表示されるコンマ数秒で少しだけ意識が明瞭になり、あーこんな感じだよねと1~2文字入力。表示されるリストを見てさらに少し意識がまとまり、何かのソフトを起動する、ということをしている。

次にしたいこととか


  • C_x C_x 階層移動(上か下)
  • C_x C_z 階層移動(上へ)
  • C_x C_h メモを取る

の3つが、今のところPPvでやっていること。やり始めて数日だが、作業の効率は格段に上がったように思う。
今まではなんだかんだで、PPvを中心にするということはできてなかった。次回あたりは、さらにPPvからできる操作を増やしてみようと思う。

2014年8月23日土曜日

PPv上で階層移動


あいさつ


僕は、テキストファイルのプレビューをPPv上の操作のみでできるようにしている。PPv上でカーソルキーを操作すれば、それと連動してPPcのカーソルが動き、カーソル位置のファイルをPPvに表示する、という具合だ。



これに加えて、フォルダに潜ったり親フォルダにいったりという操作も、PPv上でできるようになれば、便利では無いかなと思った。今まではフォルダを変更するときは、一々PPvを閉じて、PPcで移動してからまたPPvを表示する、ということをしていた。この過程を省略したい。

これを2ストロークキーで実現してみる。

準備


予め、Paper Plane xUI  Key Moduleをダウンロードして、その中にあるPPXKEY.DLL(64bitならPPXKEY64.DLL)をPPxフォルダに入れておきましょう。

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

PPvChangeDir.js

//!*script

hoge = PPx.GetFileInformation(PPx.Extract("%*extract(C\"%%FCDN\")"));

if (hoge == ":DIR"){
  PPx.Execute("%KC \"@Enter @N\"");
} else {
  PPx.Execute("%KC \"@BS @N\"");
}

以下を編集して取り込み。

-|K_ppv =

KV_main = { ; PPcメイン窓
^X ,*setnextkey K_ppv
}

K_ppv = { ** comment **
^X ,*script %0\Script\PPvChangeDir.js
^Z ,%KC"@BS @N"
}

やりかた


これで
  • C_x C_x PPcのカーソル位置がフォルダならそのフォルダに潜る。カーソル位置がファイルなら上のフォルダへ
  • C_x C_z 上のフォルダへ

ができるようになる。

フォルダ移動をしたいと思ったら、とりあえずCtrl+Xを二回押し。絶対に上のフォルダに上がりたいというときはCtrl+Xを押したあとCtrl+Zを押す、という感じですね。

たとえばてさ部フォルダで画像を閲覧していて、同じ階層にあるピングドラムフォルダに行きたい場合は次のようにする。



Ctrl+X二回押し。これで一つ上の階層に行く。



ひだまりフォルダだとかぐぬぬフォルダだとかがありますね。
PPv上でカーソルキーを動かして、輪るピングドラムフォルダにカーソルをあわせる。そして、Ctrl+X二回押し。


これでピングドラムフォルダに潜る。
このように、PPvを一々閉じてPPc側でフォルダ移動をする、ということをしなくても、別フォルダのファイルの閲覧が可能になる。

関連リンク


2014年8月12日火曜日

Everythingとファイラの連携


あいさつ


つかさです。

Everythingのv1.3系統の正式版が公開されたらしいのでインストールしてみる。前の正式版からは数年ぶりですね。

v1.2で行ってた設定からの変更箇所があるので、それのメモ。機能追加でAHKを使う必要がなくなってたり、INIをエディタでいじらなくてもGUIでカスタマイズできるようになってたりしてます。

実行時に最小化


以前(v1.2系統)はAHKを利用しないとできなかったが、デフォルトでできるようになっている。

  • 全般 - 結果 - ファイル起動時にEverythingを閉じます。

にチェック。



任意のソフトで開く


アイテムを選択してEnterを押すか、Ctrl+Enterを押すかで異なった動作をさせることが可能。

  • 全般 - コンテキストメニュー

で設定する。




  • 開く(フォルダ)
  • 開く(ファイル)

はEnterに対応しており、選択アイテムがフォルダだと「開く(フォルダ)」に、ファイルだと「開く(ファイル)」に登録したコマンドが実行される。

  • フォルダを開く

はCtrl+Enterに対応している。

というわけで、この3つの箇所に、適当なファイラなりポチエスなり何なりを登録すればいいわけです。

PPxで開きたいのであれば

$exec("D:\bin\ppx\PPCW.EXE" -r  /k *execute ,*jumppath "%1"  /entry)

あふで開きたいのであれば


$exec("D:\bin\afxw\AFXW.EXE" -s -p"%1")

という具合です。僕は、Enterはデフォルトのままで関連付け実行。Ctrl+Enterを押した時にはPPxに投げるようにしている。

ちなみにINIを直接編集することでもカスタマイズ可能。Ctrl+EnterでPPxで開くなら次のようになる。

open_path_command2=$exec("D:\bin\ppx\PPCW.EXE" -r  /k *execute ,*jumppath "%1"  /entry)


さらに別のソフトで開く


コンテキストメニューでは他に

  • 規定のファイラーで開く
  • 規定のファイラーでパスを開く

を設定することが可能。後者の「規定のファイラーでパスを開く」のみ、キー割当ができる。
「規定のファイラーで開く」のほうはキー割当ができず、コンテキストメニューとして表示して実行、だけのようだ。名前も似てるしなぜ一方だけがキー割り当てできるのかもよくわからない。まじでよくわからないのでなんでこうなるのか知ってるひと教えろください。

というわけで、キーボード操作前提なら「規定のファイラーでパスを開く」のみを設定すればいい。とりあえずあふを登録してみる。

まずは全般 - コンテキストメニューでコマンドの登録。

$exec("D:\bin\afxw\AFXW.EXE" -s -p"%1")




ついで、 全般 - キー割当。Ctrl+Gに割り当ててみる。



要するに

  • 開く(フォルダ)&開く(ファイル)、フォルダを開く、既存のファイラーで開く、既存のファイラーでパスを開くの四通りのコマンドが設定できる
  • 開く(フォルダ)&開く(ファイル)では、同一のキーで選択アイテムがファイルかフォルダかで違った動作をさせることができる
  • コンテキストメニューに表示はどれでもできる
  • 「既存のファイラーで開く」だけはキー割り当てができない
  • 開く(フォルダ)&開く(ファイル)にはデフォルトでEnterのキー割り当てがされている(変更可)
  • 「フォルダを開く」にはデフォルトでCtrl+Enterのキー割り当てがされている(変更可) 

 ということですね!なるほどわからん!



フルパスのコピー


これもデフォルトでできるようになっている。Ctrl+Shift+Cに割り振られている。
別のキーに変えたいときは、全般 - キー割当から設定する。