2014年11月18日火曜日

動的メニューの考察


現在の設定に応じ、メニューを動的に変更する方法について考えてみる。
僕は普段、Ctrl+Enterに「拡張子判別実行」%K"@Zを割り当てている。その時は、



と「実行時にカーソルを下げる(1)」メニュー項目を表示。選択すれば、Ctrl+Enterへの割当が「拡張子判別実行をしてからカーソルを下げる」%K"@Z @DOWNに切り替わる。

もし、現在の設定で、Ctrl+Enterへの割当が「拡張子判別実行をしてからカーソルを下げる」%K"@Z @DOWNになっていれば、





と「実行時にカーソルを下げない(1)」メニュー項目を表示。選択すれば、Ctrl+Enterへの割当が「拡張子判別実行」%K"@Zに切り替わる。

スクリプト


//!*script

// メニューの削除
PPx.Execute("*setcust -|M_hoehoe =");

// メニュー項目の登録
if (PPx.Extract("%*getcust(KC_main:^ENTER)")=="@Z @DOWN"){
  PPx.Execute('*setcust M_hoehoe:実行時にカーソルを下げない(&1)=*setcust KC_main:^ENTER=@Z');
} else {
  PPx.Execute('*setcust M_hoehoe:実行時にカーソルを下げる(&1)=*setcust KC_main:^ENTER=@Z @DOWN');
}

// メニューを開く
PPx.Execute("%M_hoehoe");

思ったこととか


登録すべき適当なコマンドが他に思いつかない…。「その時々で切り替えれば便利な設定」って結構ある気がするんだけどな。
このやり方を応用すれば、「あふモード」「だいなモード」みたいに、その時々でキーバインドその他の設定を大きく、一挙に切り替えるということもできるかもという妄想。ただ俺の使い方だとあまり有用性はなさそうだ。「画像管理モード」とか「テキスト閲覧モード」とかなら案外便利…?

0 件のコメント:

コメントを投稿