2

たとえば、bashコマンドでテキストを参照する必要があることがよくあります。

git mv _fav-locations-cluster.html.erb partials/_fav_locations_cluster.html.erb

編集#1

ダッシュ->アンダースコアから始まることに注意してください

私は次のようなことをしたいと思います($ 0とタブが評価されるか何か):

git mv _fav-locations-cluster.html.erb partials/'$0 and tab'

ここで、$0とtabは最初の引数を参照します。これはbashまたはzshで可能ですか?

4

5 に答える 5

5

履歴展開は、実際に現在入力されている行を参照できます。

$ git mv _fav-locations-cluster.html.erb partials/!#:2:gs/-/_/

!#現在の行を参照します。:22 番目の単語 (ファイル名) を指定し、その単語に:gs/-/_/出現するすべての を置換します。展開後のコマンドは-_

$ git mv _fav-locations-cluster.html.erb partials/_fav_locations_cluster.html.erb
于 2012-11-19T20:09:46.450 に答える
2

簡単なトリックの 1 つは、値を変数に固定して使用することです。これは上記の例で機能します:

f=_fav-locations-cluster.html.erb; git mv "$f" partials/"${f//-/_}"

または関数を作成します。

f() { git mv "$1" partials/"${1//-/_}".erb; }; f _fav-locations-cluster.html
于 2012-11-19T19:05:51.527 に答える
0

他のソリューションに加えて:

f=_fav-locations-cluster.html.erb; git mv $f partials/$f

このソリューションの利点は、後続のコマンドで $f を使用できることです。欠点は、a) 同じタスクを実行するのに 2 つのコマンドが必要であり、b) 後で剰余変数 $f が得られることです。

于 2012-11-19T19:07:22.610 に答える
0

.zshrcは持っています:

bindkey -M emacs "\M-;" copy-prev-word

これにより、Meta+を使用;して前の単語をコピーできます。あなたの例では、デフォルトでコピーpartials/されますが、ウィジェットは数値プレフィックスでも機能して、以前の単語を使用する必要があることを指定します。したがって、バインディングの前にMeta+を使用すると、探しているものが達成されます。2copy-prev-word

Bash にも同様のコマンドが用意されている場合があります。

于 2012-11-19T18:52:02.990 に答える
0

git mv {,partials/}_fav-locations-cluster.html.erb

于 2012-11-19T18:56:03.480 に答える