8

stdoutに書き込んだ前のコマンドの出力の出力をすばやく(たとえば、キーボードショートカットなどを介して)参照する方法はありますか?

たとえば、これを行った場合:

which rails

それが戻ってき/usr/local/bin/railsて、そのファイルをtextmateで開きたいと思ったら、次のように出力を再入力できます。

mate /usr/local/bin/rails

しかし、出力を再入力せずにすばやく参照する方法はありますか?

注:私は自分にできることは承知していますがmate $(which rails)、特にstdoutを参照することを検討しています。

4

2 に答える 2

4

履歴参照でバックティックを使用します。

$ which rails
/usr/local/bin/rails
$ mate `!!`

実際、私のエディター (gvim を開始するスクリプト) は にエイリアスされてeいるため、さらに短く見えます。

$ e `!!`

また、いつでもホットキーにバインドできます (bindコマンドとについては、bash のマニュアル ページを参照してくださいreadline support)。

また、カット バッファ (X アプリケーションではマウスで選択) を使用できる場合は、次のようなホットキーが役立つ場合があります。

$ e $(xclip -out)

このコマンドは、コマンド ラインのカット バッファにあるものを使用して、上記のようにエディタを起動します。ダブルクリックするだけで多くのパスを選択できるため、選択したパスをすばやく編集できます。

于 2012-07-18T21:08:30.873 に答える
-1

コマンドはいつでもバッククォートで実行できます。

mate `which rails`

とは言っても、少しリスクが高いと言わざるを得ません。PATH が改ざんされて、実際に必要なものとは異なるバージョンの Rails が返された場合はどうなるでしょうか? which が何も返さない場合はどうなりますか? そのため、これらのエラー ケースをすべてクローズするか、何らかの方法で回避するように注意してください (たとえば、構成ファイルからレールへのパスを読み取り、その構成ファイルをビルドするツールを作成します)。

于 2012-07-18T21:01:36.267 に答える