up::

ツール管理が主軸なら全部aquaでよくないか。Go製。
scoopと比べてバージョン管理できるのが強み。CLIのみ。
[Quick Start | aqua](https://aquaproj.github.io/docs/tutorial/

分かりにくいがaqua generateで検索できる。aqua gでもOK。
これは設定を書き込むコマンド。-iを付けることで設定がaqua.yamlに書かれる。
ないならそのディレクトリに行ってaqua initで作れる。

aqua list | slsでもよさそう……fuzzyじゃないが。

といってもグローバルツールが主軸だと思うので、-gでグローバルインストールする方法。
まず環境変数AQUA_GLOBAL_CONFIGにaqua.yamlへの絶対パスを指定。aqua -i -gで設定したパスのaqua.yamlに書き込みが行われる。

書き込み終えたらaqua i -a

globalからインストールしたものは"~\AppData\Local\aquaproj-aqua\"に入る。AQUA_ROOT_DIRで変更可能。aqua infoで確認。
cliしかないのでそんな重くはない。

これだけだと動かないので、PATHを通す。
AQUA_ROOT_DIR\binにハードリンクがある。ここへの絶対パスを書く。
ハードリンクだからかここ以下のexeはeverythingに引っかからない。

uvやdenoはある。rustはなぜかPRが二年放置されている。
feat: add rust-lang/rust by suzuki-shunsuke · Pull Request 13012 · aquaproj/aqua-registry · GitHub

aqua.yamlを書き換えることでツールバージョンを変更できる。

インストールされたパッケージはaqua list -installed

aqua i -lとするとシンボリックリンクだけが作られ、ツールコマンドを打ってそれが無かった時に初めてインストールするようになる。

CLI バージョンマネージャー aqua のススメ - Retty Tech Blog

アンインストールはaqua rm -m pl -g <packaage name>。バージョンまでは指定しなくていい。
パッケージとリンクを削除するだけなので構成ファイルには残る。編集で消す。
nvim $env:AQUQ_GLOBAL_CONFIGなど。

Uninstall Packages | aqua

ripgrep

ファイル全文検索。rg
ファイルの中身を見ることになるのでそんなに使わない。
obsidianが起動してなくても使える利点はあるが、インデックスを作らないらしく一文字間違えるとまた検索の手間がかかる。

拡張子指定は-g '*.txt'。複数指定は波括弧とコンマ区切り。
GitHub - BurntSushi/ripgrep: ripgrep recursively searches directories for a regex pattern while respecting your gitignore

fd

ファイル名検索。everythingと同等。
indexを作ったり管理者権限で動かしたりが無いので楽。
GitHub - sharkdp/fd: A simple, fast and user-friendly alternative to ‘find’

特定のパス以下

二番目の引数として与える。

特定の拡張子

-e

高速サブフォルダ以下ls

fd . /

隠しファイル込み

--hidden, -H

.gitignore込み

--no-ignore, -I

-Hと-Iを両方

-u,--unrestricted

シンボリックリンク込み

-L, --follow

ファイル名を完全一致

-g

コマンド実行

-x。rmと組み合わせるなど。
-iを付けると都度確認できる。

除外

-E

fzfに投げる

結果をパイプで投げるだけ。
GitHub - junegunn/fzf: :cherry_blossom: A command-line fuzzy finder