お世話になります。以下(1)のようにhoge.exeを出力をfzfで絞ったパスでジャンプする設定を使用しています。しかし、fzfがターミナル表示されるまで体感で3~5秒を要します。それに対して(2)の設定では1秒以内に表示されます。出来れば、*jumppathのほうを使用したいのですが、処理速度を短縮する方法はありますでしょうか。アドバイスをお願いいたします。(1) *jumppath %*run(-launch -noppb hoge.exe | fzf -e --reverse --border | sed s/\\/\\\\/g)(2) %Ob hoge.exe | fzf -e --reverse --border | sed -r "s/\\/\\\\/g" | xargs %0\ppcw.exe -r
ざっと確認してみましたがコマンドの実行の開始に待たされているようです。一度調べてみます。
調べてみたところ、リダイレクトが必要なターミナルウィンドウの初期化は時間がかかるようです。例えば、次の 1),2) ですと、ターミナルウィンドウが不要となる2) のほうが早くなります。1) *jumppath %*run(-launch -noppb cmd.exe /c echo c:\windows)2) *jumppath %*run(-launch -noppb -hide cmd.exe /c echo c:\windows)PPx 側でなくターミナル側の問題のようですので、初期化が早いターミナルアプリを使うしかないようです。
承知しました。御確認ありがとうございます。
ふと、思いついたので、次の Module を作ってみました。https://toro.d.dooo.jp/PPXtest.zip*AllocConsole %: *jumppath %*run(-launch -noppb hoge.exe | fzf -e --reverse --border | sed s/\\/\\\\/g) %: *FreeConsoleこの例のようにすると、高速表示ができました。*AllocConsole は、プロセスに固有のコンソールを作成する API を呼び出すコマンドです。プロセスに1つしかつくれませんので、終わったら *FreeConsole で閉じてください。また、今は conhost が使われているので高速ですが、将来 WT に置き換わって遅くなるかもしれませんので注意ください。
返信が遅くなって申し訳ありません。かなり起動が早くなって、とても快適になりました。ありがとうございました。
申し訳ありません。確認したつもりでいましたが不足していました。> 終わったら *FreeConsole で閉じてください。これは手動でコンソールを閉じるということでしょうか?現状だとfzfで選択→jumppath実行してもコンソール表示が残ります。末尾に%:*FreeConsoleがあるので閉じそうなので、行頭に%Osを追加してみましたが変わらずでした。あと、hoge.exe|fzf でhogeの出力が空の場合、fzfが待機状態となりますがこの状態でCtrl+cを連打してコンソールを閉じるとPPx本体も落ちてしまうのが気になりました。
ごめんなさい。またも確認不足でした。> 現状だとfzfで選択→jumppath実行してもコンソール表示が残ります。5秒ほど経過した後にコンソール表示は自動で閉じました。失礼しました。
*allocconsole を使ったプロセスが残っている間は、表示されたままとなるので *freeconsole を使う必要があると、思っていました。しばらくすると閉じるのは、何かの影響かもしれません。あと、Ctrl+C でプロセス全体が落ちるのはコンソールの既定の動作なので、閉じないように設定を変えることにします。