Alt + .(ドット)は、前の引数の代わりに&を表示します。

Alt + .(ドット)は、前の引数の代わりに&を表示します。

私は(乱用)Alt+を使用して前の.コマンドの最後の引数を復元します(私は次を使用しています)。ZTE):例えば、

$ convert img.png img.pdf
$ llpp (alt + .) # which produces llpp img.pdf

しかし、時には、次のコマンドを使用してPDFを表示します。llpp

$ llpp pdffile.pdf& 

それから別のことをしようとするとpdffile.pdf困難になります。

$ llpp (`Alt` + `.`) # produces llpp &

それでは、+pdffile.pdfのようなものを使って復元する方法はありますか?Alt.

$ echo $SHELL
/usr/bin/zsh
$ echo $TERM
xterm

答え1

ESC-.insert-last-word)は、スペースで区切られた、またはスペースで区切られたシェルトークン1を、句読点トークンを含む「単語」として扱います&

最後の単語以外の単語を取得するには、数値引数を指定できます。正の引数は右から計算されます。Alt++は+と同じです1 Alt.Alt.Alt+ 2 Alt+.前の単語などをつかみます。Alt+ 0 Alt+は.前の単語であり、負のパラメータは左から続きます。たとえば、++ Alt+は最初のパラメータです。- Alt1 Alt.

私は持っていますcopy-earlier-wordそれは起こるしかありませんESC-,ESC-.履歴内の連続したコマンドの最後の単語に対して insert を繰り返し呼び出すと、ESC-,同じESC-.コマンドの前の単語に対して insert が繰り返し呼び出されます。したがって、次のコードを使用すると、.zshrc++を使用して前のコマンドの2番目の単語を取得できます。Alt. Alt,

autoload -U copy-earlier-word
zle -N copy-earlier-word
bindkey '^[,' copy-earlier-word

1この文脈では、「トークン」にはいくつかの合理的な定義があります。この回答では、insert-last-word「別の単語と見なされるもの」の定義に従います。

答え2

Bashでは、演算の前に数値引数を追加できます。

したがって、willの否定的な議論は-1議論を解決します。今後

次のように入力します。

Alt- -- 1 Alt-.

または簡単に:

Alt- - Alt-.

zshでこれをどのように表現するのかわかりません。

関連情報