2023年6月19日月曜日

一行編集でコマンドを自動補完?

コマンドラインランチャでよくあるコマンドの自動補完を、以下のようにして擬似的に行う。

  • 補完候補リストの選択あり→選択中のアイテムを実行
  • 補完候補リストの選択なし→補完一覧リストの一番上を選択して実行

以下を編集して取込。

K_pplaunch = {
ENTER	,*ifmatch -1,%*sendmessage(%N-L,392,0,0) %: %K"@DOWN @ENTER" %: *stop
	%K"@ENTER"
^V	,*completelist -close %: *mapkey delete,K_pplaunch %: %K"@^V"
^D	,*deletehistory h,"%*edittext" %: *linemessage ヒストリから履歴を消去しました
}

以下のコマンドを実行する。補完候補ファイルはPPxフォルダ内のlaunch.txtという想定。

*string o,name=%*input("" -title:"PPlauncher" -mode:h -k:"*completelist /set /file:%%0launch.txt -match:6  %%: *mapkey use,K_pplaunch") %: *execute,%so"name"

[^V]はコピペのための処理。また、履歴に不要なものがあると意図しない動作をしうるので、[^D]で履歴を削除できるようにしている。 補完候補リストの選択位置の取得方法については、作者さんに教えていただいた。感謝!

0 件のコメント:

コメントを投稿