zshで現在入力されているパラメータをどのように繰り返しますか?

zshで現在入力されているパラメータをどのように繰り返しますか?

時々、私たちはそれを使うときに少し異なる名前を入力する必要がありますmv/cp/convert。例えば、

convert IMG-long-number.jpg  IMG-long-number.png

IMG-long-number.pngを入力する前に、IMG-long-number.jpgをどのように繰り返して少し調整すればよいですか?

これは次のようになります。bashコンソールで現在入力されているパラメータをどのように繰り返すのですか?しかし、zsh / zleの場合。

答え1

!#$<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

答え2

覚えておくべきもう一つのこと:そうではありません。

使用後に受け取る

IMG-long-number.jpg 変換
ただ編集してみてください

IMG-long-number.{jpg,png} 変換

答え3

Ctrl+Alt+_前の単語(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単語スタイル(単語alnumのみ)を使用できます(bashWordウィジェットの使用方法を参照)。外のCtrl+WAlt+BAlt+D…考えてみてください性格)。

答え4

@muruが提案したものと似ています - !#$<TAB>。しかし、.zshrcにも次のバインディングを作成しました。

bindkey -s "^[," "!#\$^I"

これにより、コンマを押した後にポイントが前のコマンドの最後の引数を提供するEsc方法と同様に、これが行われます。Esc

関連情報