cursormove.jsは、最初のエントリにカーソル移動するためのスクリプト。ただそれだけだと寂しいので、
- 最初のエントリで実行 → 最初のファイルへ
- 最初のファイルで実行 → 番最後のエントリへ
とカーソル位置を移動するようにしている。
たとえばこのようなフォルダ構成だったら、①→②→③→①…という動きをする。
汎用性があるかどうかというと多分微妙なのだろうが、僕の中では使用頻度が高い。フォルダ構成その他で思うように機能しないことが多々あり、そのたびに少しずつ修正をしてきたが、元々のスクリプトがこんがらがってたので一新。
以下をScriptフォルダに保存。
CursorMove2.js
//!*script // 最初のエントリ位置取得 var fn; for (var i = 0; i < 3; i++) { if (PPx.Entry(i).Name != "." && (PPx.Entry(i).Name != "..") ) { fn = i break; } } // 最初のファイル位置取得 var ff; for (var i = fn; i < PPx.EntryAllCount; i++) { if (PPx.GetFileInformation(PPx.Entry(i).Name) != ":DIR") { ff = i; break; } } // エントリが一つ以下なら終了 if (PPx.EntryDisplayDirectories + PPx.EntryDisplayFiles <= 1) PPx.Quit(); // ファイルのみの場合 if (PPx.EntryDisplayDirectories == 0) { // 最初のエントリなら最後に if (fn == PPx.EntryIndex){ PPx.EntryIndex = PPx.EntryAllCount - 1; PPx.Quit(); } else { // それ以外なら最初に PPx.EntryIndex = fn; PPx.Quit(); } } // ディレクトリのみの場合 if (PPx.EntryDisplayFiles == 0) { // 最初のエントリなら最後に if (fn == PPx.EntryIndex){ PPx.EntryIndex = PPx.EntryAllCount - 1; PPx.Quit(); } else { // それ以外なら最初に PPx.EntryIndex = fn; PPx.Quit(); } } // ファイルとディレクトリがともにある場合 if (PPx.EntryIndex == fn){ // 最初のエントリなら最初のファイルに PPx.EntryIndex = ff; } else if (PPx.EntryIndex == PPx.EntryAllCount - 1) { // 最後のエントリなら最初のエントリに PPx.EntryIndex = fn; } else if (PPx.EntryIndex == ff) { // 最初のファイルなら最後のエントリに PPx.EntryIndex = PPx.EntryAllCount - 1; } else { // それ以外なら最初のエントリに PPx.EntryIndex = fn; }
以下を編集して取込。 Ctrl+Eに割り振る。
KC_main = { ; PPcメイン窓 ^E ,*script %0\Script\CursorMove2.js }
0 件のコメント:
コメントを投稿