いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

findの結果を引数にして vim を開きたい

関連情報

GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ

概要

以下、自分用のメモです。よく忘れるのでここにメモメモ。。

大した話では無いですが、よく findの結果でvimで開きたい という相談を受けます。

その人の動きを見てみると、findのコマンドをまず実行して出てきた結果をコピー(覚えて)、それからvimを起動してそのパスを指定して開くという操作をしてました。特に間違っている訳ではないですが、ちょっと面倒ですよね。

最近のシェルだと $( ) でコマンドの結果を指定できますので、以下のように出来ます。

$ vim $(find ・・・)

これで、findで見つかったファイル全部が引数 (arg) に追加された状態で vim が起動してくれます。

以下、例です。

$ ls -1
Dockerfile
LICENSE
README.md
Taskfile.yml
builder
cmd
examples
go.mod
go.sum
main.go
mapping
revive.toml
runner
tags
try-golang



#
# 788ファイルある
#
$ find . -name '*.go' -type f | wc -l
788

#
# 全部 vim に指定して開く
#
$ vim $(find . -name '*.go' -type f)
788 個のファイルが編集を控えています

別のやり方として、 xargs を使って渡すというのも出来ますね。

$ find . -name '*.go' -type f | xargs -o vim
788 個のファイルが編集を控えています

この場合は、xargs コマンドに -o オプションをつけるのを忘れないようしないといけません。

-o をつけてないと、その後コンソールがおかしくなるはずです。

参考情報

unix.stackexchange.com

おすすめ書籍


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。