1

件名にあるように、「2>&1 | tee build.log」と入力する簡単な方法が欲しいです。

またはさらに良いことに、2>&1 | に展開されたショートカットが欲しいです。tee $1.$2.log" ここで、$1 と $2 は現在の行から取得されます。

私はいくつかの異なることを試しましたが、ここに私が見つけた問題があります

  1. エイリアスは、最初の単語 (または別のエイリアスの後の最初の単語) にのみ適用されるようです。だから私は彼らが助けることができないと確信しています。
  2. 「log ant compile」などの関数は機能しますが、最初の引数が 2 番目の引数に移動するため、タブの展開が壊れるなどの望ましくない副作用があります。
  3. 変数は、LOG='2>&1 | などのように機能します。ただし、esc-ctrl-E を使用して手動で展開する必要があるか、2>&1 がパラメーターとして渡されます。

これを行うためのより良い方法を知っている人はいますか?

ありがとう - カーター

4

1 に答える 1

3

4 番目のオプションである readline マクロを提案してもよろしいですか?

以下をファイルに追加し~/.inputrcます (必要に応じて作成します)。

"\C-x\C-l": " 2>&1 | tee build.log"

新しいシェルはこのファイルを自動的に処理します。Control-x Control-r を押すことで、現在のシェルでファイルを再読み込みすることができます (デフォルトで設定されているかどうかは忘れました)。

これで、Control-x Control-l を押すたびに、テキスト "2>&1 | tee build.log" がカーソルに挿入されます。

アップデート:

"\C-x\C-l": "\eb\eb2>&1 | tee \ef\C-d.\ef"

入力できるようになります

build log

Control-x Control-l に続けて変換します。

2>&1 | tee build.log
于 2012-07-25T19:02:35.647 に答える