この資料は Rust 製のコマンドラインツール skim について紹介するものです。
Rustの環境構築やツールのインストール方法については以下を参照してください
skim は、ファイル、行、コマンドなどのナビゲーションに費やされる時間を短縮するためのファジーファインダーです。コマンド名は sk となります。
GitHub - lotabout/skim: Fuzzy Finder in rust!
skim の実行例
# works with grep
% sk --ansi -i -c 'grep -rI --color=always --line-number "{}" .'
# works with rg
% sk --ansi -i -c 'rg --color=always --line-number "{}"'
# カレントディレクトリ以下にあるRustソースの一覧から選択してエディタで開く
% vim $(find . -name "*.rs" | sk -m)
skim は一般的なフィルタ(grep のような)として、あるいはコマンドを呼び出すための対話型インターフェイスとして使用することができます。
以下を試してみて下さい
# directly invoke skim
sk
# or pipe some input to it: (press TAB key select multiple items with -m enabled)
vim $(find . -name "*.rs" | sk -m)
上記のコマンドを実行すると、拡張子が .rs
のファイルを選択し、選択したファイルを vim で開くことができるようになります。
skim は他のコマンドを動的に呼び出すことができます。通常は grep, ack, ag, rg などと組み合わせて、プロジェクトディレクトリの内容 を検索することになるでしょう。
# works with grep
sk --ansi -i -c 'grep -rI --color=always --line-number "{}" .'
# works with ack
sk --ansi -i -c 'ack --color "{}"'
# works with ag
sk --ansi -i -c 'ag --color "{}"'
# works with rg
sk --ansi -i -c 'rg --color=always --line-number "{}"'
よく使われるキーバインドをいくつか紹介します。