ラベル peco の投稿を表示しています。 すべての投稿を表示
ラベル peco の投稿を表示しています。 すべての投稿を表示

2020年5月19日火曜日

PPb+pecoで英和辞書

英和辞典を一行編集で引く方法を以前紹介したが、連続的に辞書を引く必要があるとき、一行編集をその度に表示しないといけないのが煩わしいなと思っていた。
なので別の方法を考案。

chcp 65001 %: type %0ejdic-hand-utf8.txt | %0peco.exe

これでPPbを辞書代わりにできる。


辞書ファイルは以下。

2020年5月5日火曜日

PPx+pecoで柔軟にフォルダ階層移動


pecoで柔軟に階層移動できるようにする。以前は一階層しか移動できなかったが、今回は複数階層の移動が可能。
Script Module以外にText Moduleが必要。Releases · peco/peco · GitHubからWindows版のバイナリ(peco_windows_amd64.zip)をダウンロードし、peco.exeをPPxフォルダに置いておく。



以下を編集して取込。

_Command = {
folder2peco = chcp 65001
 %Oi (echo ---thispath & echo .. & dir /a:d-s /b)  | %0peco.exe | %0ppbw.exe -c *alias selectedpath=%%*stdin(-utf8)
 *return %'selectedpath'
root2peco = chcp 65001
 %Oi (echo ---thispath & dir /a:d-s /b)  | %0peco.exe | %0ppbw.exe -c *alias selectedpath=%%*stdin(-utf8)
 *return %'selectedpath'
move2folder = *ifmatch 0,0%*substring("%1",3) %: *string o,hoge=%*root2peco()
 *ifmatch !0,0%*substring("%1",3) %: *string o,hoge=%*folder2peco()
 *ifmatch ---thispath,%so"hoge" %: *return
 *jumppath %*name(DC,%so"hoge") %: *execute,*%*arg(0)
}

PPcで

*move2folder %: *focus "PPB[" %: %k"ESC"

を実行する。

ポイントとか


  • 試行錯誤してる間、二度くらいカスタマイザーが起動しなくなって再インスコすることになった(再現性はよくわからない)。試す方は注意を
  • move2folderが本体
  • folder2pecoとroot2pecoは、カレントフォルダのサブフォルダ一覧をpecoに投げ、結果を返すユーザコマンド。2つの違いは「..」を表示するか否か
  • chcp 65001 で文字コードをUTF-8に
  • ユーザコマンドは*test以外に%*test()の形でも使える
  • linuxだと標準出力は簡単に取り出せるようだが、Windowsだと難しい(多分)。そこで、「エイリアスに格納して、returnで返す」という手続きを踏んでいる。_User:nameではなくエイリアスを使ってるのは、_User:nameだと処理速度が落ちるから(おま環かも)
  • ユーザコマンド中の*%arg(0)で再帰呼び出しができる。以下はもっと単純な例


_Command = {
test = *ifmatch 0,0%"何も入力しないでくだしあ><"%E %: *return
 *execute,*%*arg(0)
}


2019年11月29日金曜日

PPxでripgrep+peco


カレントフォルダ以下をriprepで検索し、pecoで絞り込んでPPVで表示できるようにする。
howmファイルをインクリメンタルサーチできたら便利かもなと思ったのがきっかけ




利用したツール



  • ripgrep:高速な検索ツール
  • busybox:いろいろなlinuxのシェルコマンドを使える
  • peco

rg.exe busybox64.exe peco.exeをPPXフォルダに置いておく。

コマンド


*ppb -c chcp 65001 %%: %%0rg.exe -n -M 40 --max-columns-preview --color never -E Shift_JIS %%E . | %%0peco.exe | %%0busybox64.exe awk -F : -e "{printf $1 \" -k *jumpline L\" $2}" | %%0PPBW.exe -c *ppv %%%%1\%%%%*stdin(-utf8)


参考


Paper Plane xUI(PPx)に一発でソースコード検索&表示できる「peco」改を移植した - Qiita

2019年11月6日水曜日

pecoでサブフォルダを検索しAIMP4へ

pecoはWindows版のバイナリ(peco_windows_amd64.zip)を使う。

*ppb -c chcp 65001 %%: dir /a:d /b | %%0peco.exe | %%0ppbw.exe -c D:\bin\AIMP4\AIMP.exe %%%%*name(DC,"%%%%*stdin(-utf8)")

これでサブフォルダを検索し、AIMP4に投げる。


以前のやり方だと「日本語表示が崩れる」「実行後PPbが閉じない」という問題があったが、それぞれ「chcpでUTF-8にする」「PPb -c command...の形式にする」ことで解決するようだ。

migemoを使う場合




peco/migemogrepからバイナリを取得。

User\ユーザー名\.config\peco

にconfig.jsonを作成し、次のように記述。

{
    "CustomFilter": {
        "Migemo": {
            "Cmd": "D:\\bin\\ppx\\migemogrep\\migemogrep.exe",
            "Args": [ "$QUERY" ],
            "BufferThreshold": 10000
        }
    }
}


これでフィルターにmigemoが追加される。あとはCtrl+Rでフィルターを切り替えるか、コマンドラインオプションで指定する。

*ppb -c chcp 65001 %%: dir /a:d /b | %%0peco.exe --initial-filter Migemo | %%0ppbw.exe -c D:\bin\AIMP4\AIMP.exe %%%%*name(DC,"%%%%*stdin(-utf8)")

参考


Paper Plane xUI で peco を使ってタブを切り替える - Qiita

2019年9月28日土曜日

pecoでフォルダ階層移動

pecoのインストール


以下からWindows版のバイナリ(peco_windows_amd64.zip)をダウンロード

https://github.com/peco/peco/releases/

PPXフォルダにpeco.exeを置く

コマンド


(echo .. & dir /a:d /b)  | %0peco.exe | %0ppbw.exe -c *execute C,*jumppath %%*stdin

適当なフォルダでこれを実行。カーソル上下か、インクリメンタルサーチで絞り込むかしてから、Enter。



思ったこととか


・サブフォルダを選択したら、さらにそのサブディレクトリをpecoって階層移動

ができたら楽しそうだなと思って、ここ数日研究していた。bash環境だとやってる例はあるのだが(pecoでcdを快適にした|bashでもpeco - マクロ生物学徒の備忘録)、wshでやろうとすると割とややこしそうなので、放置しようかなと思っている。

ここで僕がしようとしてるのは、「思考の流れと一致する操作」を「思考と同じ速度で行う」こと。少しでもタイムラグがあれば、結局その手段は使わなくなる。ターミナルを開くまでの時間、挙動速度などを考えると、別の手段を取った方がいい気もする。

参考