ALT.Насколько мне известно, не известно. Я предполагаю, что это определяется чем-то, что вы загрузили при запуске bash. (Что это делает для вас?)
$!
идентификатор процесса последнего запущенного дочернего процесса. Я предполагаю, что это не то, что вы намеревались напечатать. :)
!$
является (сокращенным) расширением истории, которое при обстоятельствах по умолчанию должно расширяться до последнего аргумента предыдущей команды. Расширение истории zsh тщательно задокументировано в руководстве zsh .
Расширения истории обычно начинаются с !, но это можно изменить, установив значение $HISTCHARS
: Первый символ $HISTCHARS
будет использоваться как символ, который инициирует расширение истории. По умолчанию $HISTCHARS
установлено значение !^#
. Вы можете проверить значение в вашей системе с помощью:
echo $HISTCHARS
Если это не начинается с !
чего-то, то что-то в вашем запуске zsh имеет другое значение, и стандартные, хорошо известные расширения истории, такие как !!
и !$
не будут работать для вас.
Обновить:
Оказывается, первый абзац, который я написал выше, совершенно неверен. Возможно, я не знал об этом ALT., но это может быть связано с тем, что я «всегда» использовал zsh с включенным режимом vi. На самом деле, ALT.(и ALT_, что делает то же самое) включены в привязках клавиш по умолчанию в zsh для emacs. Они связаны с виджетом ZLE insert-last-word
, который делает то, что вы описываете.
Если вы используете zsh со стандартными сочетаниями клавиш emacs и ALT.не работаете для вас, то то, что вы загружаете при запуске вашей оболочки, переопределяет это. Вы можете восстановить комбинации клавиш по умолчанию с помощью:
bindkey -M emacs "^[." insert-last-word \ "^[_" insert-last-word