web-dev-qa-db-ja.com

パイプを使用してvimでファイルを開く方法

locateコマンドを非常に頻繁に使用します。

したがって、次のコマンドを実行するとします。

locate updatedb | head -1

それからそれは私にO/pを与えます

/usr/updatedb.conf

そのファイルを直接開くことができるようなコマンドがあるのだろうか?

私はこのようなものを望んでいます。

locate updatedb | head -1 | vim
15
Krishna

ほぼ完了です:

$ locate updatedb | head -1 | xargs vim

時々(特定の端末の下で)編集後に端末をリセットする必要があります。

$ reset
22
periket2000

インタラクティブエディターとして、Vimはstdinとstdoutの両方を必要とするため、パイプ内でそれを使用することは問題があり、Vimにこれについて警告させます。たった1つのファイルの場合、プロセス置換はこれを簡単に解決します。

vim "$(locate updatedb | head -1)"

バックティックを使用することもできます。これはVim自体の内部でも機能します。

:edit `locate updatedb | head -1`
16
Ingo Karkat

私はこれが悪い解決策であることを知っていますが、.bashrcでエイリアスを作成するためにこれを使用しました:

locate updatedb  > /tmp/vimForTempDontTouch && vim /tmp/vimForTempDontTouch

欠点:醜い

利点:端末の副作用がありません

0
Tebe