FZF。 ファジー検索またはnpmパッケージをすばやくインストールしてプロセスを強制終了する方法


私はMacOSで仕事をしていますが、Finderを使用することはほとんどなく、コンソールですべての時間を費やしています。 だからこそ、コンソールから可能な限り便利な作業をしようとしています。


比較的最近、私はFZFユーティリティに出会いました 。 そして一週間後、それは不可欠になりました。


FZFは、UNIXスタイルのファジー検索の可能性を示します。入力時に渡された行を迅速かつ比較的よく検索し、他のお気に入りのプログラムと統合できます。


このプログラムについてのいくつかの言及を除いて、このプログラムに関するこの記事に関する記事が1つもないことに驚いた。 このギャップを埋めることにしました。 FZFについて既に知っている場合は、この記事はおそらく情報価値がないように思われ、他のすべての人を歓迎します。


gitで目的のブランチに切り替える


Wrikeでは、タスクごとに独自のブランチを作成する必要があります。 ブランチの名前にはチケット番号が含まれます。 切り替えたい場合は、名前と番号を覚えておいてください。 または検索。 私はこのようなものを探しています:


git branch -a | grep ___ 

grepの代わりにripgrepを使用します


  git branch -a | rg ___ 

しかし、この長いチームの怠inessを入力するたびに。 はい、そして角度の代わりに、私はしばしば無声になります。 要するに、1つの障害。 したがって、単純な関数を.zshrcまたは.bashrc(ドキュメントから取得)で記述するだけで十分です。


 fbr() { local branches branch branches=$(git branch --all | grep -v HEAD) && branch=$(echo "$branches" | fzf-tmux -d $(( 2 + $(wc -l <<< "$branches") )) +m) && git checkout $(echo "$branch" | sed "s/.* //" | sed "s#remotes/[^/]*/##") } 

これで、すべてのブランチを検索できます。 次のようになります。



プロセスを強制終了する


ほぼ同じ方法で、フリーズしたプロセスを強制終了できます。 関数のみがfkillと呼ばれるようになります


 fkill() { local pid pid=$(ps -ef | sed 1d | fzf -m | awk '{print $2}') if [ "x$pid" != "x" ] then echo $pid | xargs kill -${1:-9} fi } 


必要なnpmパッケージをインストールします


FZFは複数の選択をサポートしています。 つまり、Tabボタンを使用して行を選択し、Enterキーを押すと、選択したすべてのものが出力に送信されます(もちろん、-mフラグを指定してFZFを実行しない限り)。


all-the-package-namesパッケージを使用して、公式のnpmパッケージレジスタにあるすべてのパッケージ名をロードします。


 npm -gi all-the-package-names 

次に、非常に単純な関数を作成します。


 fnpm() { local packages packages=$(all-the-package-names | fzf -m) && echo "$packages" && npm i $(echo $packages) } 

そしてそれだけです。 これで、次のようなことができます。



その他の例


多くの有用な例がドキュメントにあります


代替案


githubオープンスペースで、ほぼ同じことを行う2つのユーティリティが見つかりました。
GitHub-jhawthorn / fzy:より良いファジーファインダー
GitHub-calleerlandsson / pick:コマンドライン用のファジー検索ツール


出力の代わりに


BashまたはZshのスクリプトを書くのに犬を食べた場合、その記事はおそらくあなたにとって素朴に見えるでしょう。 おそらく、あなたは私が引用した例を改善する方法さえ知っているでしょう。 あるいは、FZFをすでに長い間使用していて、何か言いたいことがあるかもしれません。


もしそうなら、コメントを書いてください。私は間違いなくあなたの例とコメントで記事を更新し、補足します。



Source: https://habr.com/ru/post/J344770/


All Articles