ALT . não é do meu conhecimento bem conhecido. Eu estou supondo que isso é definido por algo que você carregou na sua startup do bash. (O que isso faz por você?)
$!
é o ID do processo do processo filho iniciado mais recentemente. Eu suponho que isso é não o que você pretendia digitar. :)
!$
é uma expansão de histórico (abreviada) que deve sob circunstâncias padrão expandir para o último argumento do comando anterior. A expansão do histórico do zsh é meticulosamente documentada no manual do zsh .
As expansões do histórico geralmente começam com ! , mas é possível mudar isso definindo o valor de $HISTCHARS
: O primeiro caractere de $HISTCHARS
será usado como o caractere que inicia uma expansão de histórico . Por padrão, $HISTCHARS
está definido para um valor de !^#
. Você pode verificar o valor em seu sistema com:
echo $HISTCHARS
Se isso não não começar com !
, então algo na inicialização do zsh definiu um valor diferente, e expansões de histórico padrão e conhecidas como !!
e !$
não serão trabalhe para você.
Atualização:
Acontece que o primeiro parágrafo que escrevi acima está completamente errado. Eu posso não ter sabido sobre ALT . , mas isso pode ser devido ao fato de eu ter “sempre” usado zsh com o modo vi ativado. De fato, ALT . (e ALT _ , que faz a mesma coisa) são ativados no emacs padrão do zsh combinações de teclas. Eles estão vinculados ao widget ZLE insert-last-word
, que faz o que você descreve.
Se você estiver usando zsh com os atalhos de teclado padrão do emacs e ALT . não está funcionando para você, então algo que você está carregando na inicialização do seu shell está sobrescrevendo . Você pode restabelecer as combinações de teclas padrão com:
bindkey -M emacs "^[." insert-last-word \
"^[_" insert-last-word