Alt -_ já insere a última palavra do último comando. Para mim, isso é bom o suficiente, mas você pode adicionar outra ligação de chave que insira um espaço, a última palavra e aceite a linha ( Enter ).
Com tcsh
ou zsh
(para Alt-S , S
para same
):
bindkey -s '\es' ' \e_\r'
com bash
:
bind '"\es": " \e_\r"'
Em seguida, digite:
$ nmap -Pn -sS 192.168.1.5
$ ssh<Alt-S>
$ curl<Alt-S>
...
Em zsh
e tcsh
, pelo menos, o argumento numérico (que é quando você prefixar com Alt- < number > ) será aplicado a o caractere de espaço que não é muito útil ( Alt-3 Alt-S iria inserir 3 espaços, a última palavra uma vez e aceitar a linha). Seria mais útil inserir a última palavra n th do último comando, ou a última palavra do n th último comando, ou as últimas n palavras do último comando.
Em zsh
, em vez de usar uma macro, você poderia definir um novo widget. Por exemplo com:
use-last-word() {
LBUFFER+=" "
zle insert-last-word
zle accept-line
}
zle -N use-last-word
bindkey '\es' use-last-word
Alt-3 Alt-S inseria a última palavra 3 rd do último comando.
Para inserir a última palavra do último comando rd :
use-last-word() {
LBUFFER+=" "
local n=$NUMERIC
unset NUMERIC
repeat ${n:-1} zle insert-last-word
zle accept-line
}
Para inserir as últimas 3 palavras do último comando:
use-last-word() {
for ((NUMERIC=${NUMERIC:-1}; NUMERIC; NUMERIC--)) {
LBUFFER+=" "; zle insert-last-word
}
zle accept-line
}