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をすでに長い間使用していて、何か言いたいことがあるかもしれません。







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








All Articles