質問: vimでコマンドの結果によって与えられたファイルを開く ほぼ毎日、次のことをしている 検索を実行(find -name somefile.txt) 結果をvimで開きます 問題は、findの結果をコピーしてvimコマンドに貼り付ける必要があることです。これを回避する方法はありますか?私は少し実験しました(find -name somefile.txt | vim)ですが、機能するものが見つかりませんでした。前もって感謝します
回答: コマンドを再度実行しても構わない場合は、次を押します。 up xargsコマンドを追加します。または履歴置換を使用して実行!! | xargs vim # won't work with file names containing \'" or whitespace !! | xargs -d \\n vim # gnu only (linux, cygwin) kshとzshでは機能するがbashでは機能しないコマンドの出力を保存する軽量な方法があります(パイプラインの出力側を親シェルで実行する必要があります)。コマンドを関数k(下記のzsh定義)にパイプします。これにより、k変数$kに出力が格納されます。function k { k=("${(@f)$(tee /dev/fd/3)}") 3>&1; } find ... |k vim $k 各コマンドの出力を自動的に保存することは、シェルだけでは実際には不可能です。エミュレートされたターミナルでコマンドを実行する必要があります。 script (bsdユーティリティですが、linuxやsolarisを含むほとんどのunicesで利用できます)を実行することで実行できます。これにより、セッションのすべての出力がファイルに保存されます( typescriptの最後のプロンプトを確実に検出するために必要な少しの努力)。