ALT.ist meines Wissens nicht bekannt. Ich gehe davon aus, dass dies durch etwas definiert wird, das Sie in Ihrem Bash-Start geladen haben. (Was macht es für dich?)
$!
ist die Prozess-ID des zuletzt gestarteten untergeordneten Prozesses. Ich nehme an, das ist nicht das, was Sie schreiben wollten. :)
!$
ist eine (verkürzte) Historienerweiterung, die unter Standardbedingungen zum letzten Argument des vorherigen Befehls erweitert werden sollte. Die Historienerweiterung von zsh ist im zsh-Handbuch sorgfältig dokumentiert .
Historienerweiterungen beginnen normalerweise mit !. Sie können dies jedoch ändern, indem Sie den folgenden Wert festlegen $HISTCHARS
: Das erste Zeichen von $HISTCHARS
wird als Zeichen verwendet, das eine Historienerweiterung initiiert. Standardmäßig $HISTCHARS
ist ein Wert von festgelegt !^#
. Sie können den Wert in Ihrem System überprüfen mit:
echo $HISTCHARS
Wenn dies nicht mit anfängt !
, hat etwas in Ihrem zsh-Startup einen anderen Wert festgelegt, und Standarderweiterungen mit bekannten Verlaufsverläufen mögen !!
und !$
werden für Sie nicht funktionieren.
Aktualisieren:
Es stellt sich heraus, dass der erste Absatz, den ich oben geschrieben habe, absolut falsch ist. Ich habe es vielleicht nicht gewusst ALT., aber das liegt möglicherweise daran, dass ich zsh immer mit aktiviertem vi-Modus verwendet habe. Tatsächlich sind ALT.(und das ALT_, was dasselbe bewirkt) in den Standard-Emacs-Keybindings von zsh aktiviert. Sie sind an das ZLE-Widget gebunden insert-last-word
, das tut, was Sie beschreiben.
Wenn Sie zsh mit den Standard-Tastenkombinationen von emacs verwenden und ALT.nicht für Sie arbeiten, wird dies durch etwas überschrieben, das Sie beim Start der Shell laden. Sie können die Standard-Tastenkombinationen folgendermaßen wiederherstellen:
bindkey -M emacs "^[." insert-last-word \ "^[_" insert-last-word