もうすぐ完成です:
$ locate updatedb | head -1 | xargs vim
ときどき (特定の端末では) 編集後に端末をリセットする必要があります。
$ reset
対話型エディターとして、Vim は stdin と stdout の両方を必要とするため、パイプ内で使用すると問題が発生し、Vim はこれについて警告します。たった 1 つのファイルの場合、プロセス置換はこれを簡単に解決します:
vim "$(locate updatedb | head -1)"
バッククォートを使用することもできます。これは Vim 自体の内部でも機能します:
:edit `locate updatedb | head -1`
上記の回答に加えて、Jacobo de Vera がコメントで述べた「端末の破損」を回避するには、xargs オプション -o
を使用します。 または --open-tty
vim に、入力が stdin ではなく端末からのものであると想定させる。
$ locate updatedb | head -1 | xargs -o vim
参照:https://unix.stackexchange.com/a/44428/307359