2014年11月25日火曜日

フォルダのブックマーク(PPxで一時ブックマーク改)


あいさつ


PPxで一時ブックマークで行ったフォルダブックマークを

  • setalias.js
  • resetalias.js
  • RotateExecute3.js

の、PPvメインの連動ビューで使った3つのスクリプトで作りなおす。*setが*aliasに変わったこと以外は、やれることはほぼ同じ。
ではなぜ、わざわざ作りなおしたのかというと、次回あたりでやりたい「ブックマークをファイルにして保存」の準備に必要だから。

スクリプト


以下の3つのスクリプトをScriptフォルダに保存。PPvメインの連動ビューのものと全く同じなので流用できる。

setalias.js
//!*script
// 第一引数 : エイリアス
// 第二引数 : マクロ

// 引数がなければ終了
if (PPx.Arguments.Length < 2){
  PPx.SetPopLineMessage("引数が正しくありません。");
  PPx.Quit(-1);
}

var cmd = PPx.Arguments.Item(0);
var macro = PPx.Arguments.Item(1);

// 既に登録されていたら登録しない
for (var i = 0; i < 30; i++) {
  if (PPx.Extract("%'"+cmd + i + "'") == PPx.Extract(macro)){
    PPx.SetPopLineMessage("既に登録されてます");
    PPx.Quit();
  }
}

// エイリアスに登録
for (var i = 0; i < 30; i++) {
  if (!PPx.Extract("%'"+cmd + i + "'")){
    PPx.Execute("*alias "+cmd+i+" = "+macro);
    PPx.SetPopLineMessage(cmd+i+"に登録しました");
    break;
  }
}

resetalias.js

//!*script
// 第一引数 : エイリアス

// 引数がなければ終了
if (PPx.Arguments.Length < 1){
  PPx.SetPopLineMessage("引数が正しくありません。");
  PPx.Quit(-1);
}

var cmd = PPx.Arguments.Item(0);

// cmd0からcmd30までをリセット
for (var i = 0; i < 30; i++) {
  PPx.Execute("*alias "+cmd+i+" = ");
}

PPx.SetPopLineMessage(cmd +"をリセットしました");

RotateExecute3.js
//!*script
// 第一引数: 識別子
// 第二引数: エイリアス

// 引数がなければ終了
if (PPx.Arguments.Length < 2){
  PPx.SetPopLineMessage("引数が正しくありません。");
  PPx.Quit(-1);
}

var id = PPx.Arguments.Item(0);
var command = PPx.Arguments.Item(1);

// command0があるかどうかをチェック
if (!PPx.Extract("%'"+command+"0'")){
  PPx.SetPopLineMessage("コマンドが空です");
  PPx.Quit(-1);
}

// 数値に1を足す
if (!PPx.Extract("%'"+id+"'")){
  PPx.Execute("*set "+id+" = 0");
}else {
  var i = parseInt(PPx.Extract("%'"+id+"'")) + 1;
  PPx.Execute("*set "+id+" = "+ i);
}
var i2 = PPx.Extract("%'"+id+"'");

// commandを実行
if (PPx.Extract("%'"+command+ i2 + "'")){
  PPx.Result = PPx.Extract("%'"+command+ i2 + "'");
}else{
  PPx.Execute("*set "+id+" = 0");
  PPx.Result = PPx.Extract("%'"+command+"0'");
}

設定


以下を編集して取込。
-|K_bookmark =

KC_main = { ; PPcメイン窓
^S ,*setnextkey K_bookmark
}

K_bookmark = { ** comment **
S , *script %0\Script\setalias.js,bookmark,%%1
R , *script %0\Script\resetalias.js,bookmark
^S , %j %*script("%0\Script\rotateExecute3.js","homu","bookmark")
}

使い方


C_s s(Ctrl+Sを押したあとSを押す)で、カレントフォルダをブックマークに登録できる。このとき、左上に登録したエイリアスが表示される。bookmark0、bookmark1、bookmark2と、1つずつ数値が増えているのがわかると思う。






C_s C_s(Ctrl+Sを二回押し)で、ブックマークしたフォルダに順次移動。登録した順に、bookmark0、bookmark1…と切り替わり、最後まで行くとまたbookmark0に戻る。





ブックマークをリセットしたいときは、C_s r(Ctrl+Sを押したあとRを押す)

0 件のコメント:

コメントを投稿