mv/cp/convert
を使用するときに、わずかに異なる名前を入力する必要がある場合があります。例えば、
convert IMG-long-number.jpg IMG-long-number.png
IMG-long-number.pngを入力する前にIMG-long-number.jpgを繰り返すにはどうすればよいので、少し調整するだけで済みますか?
これは bashコンソールで現在入力されているパラメーターを繰り返す方法は? に似ていますが、zsh/zleの場合です。
!#$<Tab>
は私のために働きます。与えられた:
$ echo a
!#$
と入力してから、 Tab!#$
をa
に展開します。 :
を使用して操作を試行した場合、タブ補完には他のオプションも表示されます。
$ echo a !#$:
& -- repeat substitution
A -- absolute path resolving symbolic links
Q -- strip quotes
a -- absolute path
c -- PATH search for command
e -- leave only extension
g -- globally apply s or &
h -- head - strip trailing path element
l -- lower case all words
q -- quote to escape further substitutions
r -- root - strip suffix
s -- substitute string
t -- tail - strip directories
u -- upper case all words
覚えておくべき代替案は次のとおりです。
完了を使用して取得した後
iMG-long-number.jpgを変換します
iMG-long-numberを変換します。{jpg、png}
私は使用します Ctrl+Alt+_ 前のWord(copy-prev-Word
ウィジェット)をコピーします。コピーしたら、 Backspace コピーの拡張子を編集します。
または使用する Ctrl+W 全体を削除します。デフォルトでは、 Ctrl+W 単語全体(alnums + $ WORDCHARSとして定義)を削除しますが、select-Word-style
ウィジェットを使用してオンデマンドで動作を変更できます。
~/.zshrc
:
autoload select-Word-style
zle -N select-Word-style
bindkey '\eW' select-Word-style
次に、別の単語スタイルを選択できます。 Alt+Shift+W。ここでは、bash
Wordスタイル(単語のみのalnum)を使用できます(参照は、bash
Wordウィジェット以外 Ctrl+Wいいね Alt+B、 Alt+D...検討してください単語)。
Zshでviモードを使用する場合は、最初の数字を書き込んでから、ESC
とByt.
を書き込んでドットまでコピーできます。最後に、A
とSPC
を最後に移動してスペースを挿入し、ESC
Pi.png
を貼り付けてpng拡張子を入力します。
@muruが提案したものと同様-!#$<TAB>
。しかし、私は.zshrcでこのようなバインディングも作成しました:
bindkey -s "^[," "!#\$^I"
そうすれば、Esc
を押してからカンマを押すと、Esc
を押してからドットが前のコマンドの最後の引数を取得するのと同じように、それが行われます。