Zsh

Alt + 。(dot) 顯示 &,而不是前面的參數

  • December 25, 2018

我(ab)使用Alt+.恢復上一個命令中的最後一個參數(我正在使用ZSH):例如,

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

但有時我會用llpp

$ llpp pdffile.pdf& 

然後如果我嘗試做其他事情,pdffile.pdf我就會遇到麻煩

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

那麼,有沒有辦法pdffile.pdf使用類似於Alt+的東西來恢復.

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

ESC-.( insert-last-word) 將任何空格分隔或空格分隔的外殼標記¹視為“單詞”,包括標點符號,例如&.

您可以給它一個數字參數來獲取除最後一個單詞之外的單詞。正參數從右開始計數:+ Alt+1 Alt等價.Alt+ .,**Alt++2 Alt``.**抓取前一個單詞,等等。Alt+ **+**是前一個單詞,負參數從左邊繼續,例如+ + 0 Alt+是第一個參數。.``Alt``- Alt``1 Alt``.

copy-earlier-word一定要ESC-,。在重複呼叫ESC-.插入連續命令的最後一個單詞返回曆史的情況下,重複呼叫ESC-,afterESC-.插入同一命令的前一個單詞。因此,使用 中的以下程式碼,您可以使用++.zshrc獲取上一個命令的倒數第二個單詞。Alt``. Alt``,

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

¹在這種情況下,“令牌”有幾個合理的定義。在這個答案中,我將按照定義“insert-last-word認為是一個單獨的詞”。

引用自:https://unix.stackexchange.com/questions/490801