ESC-.
(insert-last-word
)рассматривает любой разделяемый пробелом -или разделяемый пробелом -маркер оболочки¹ «словом», включая знаки препинания, такие как &
.
Вы можете указать числовой аргумент, чтобы получить слово, отличное от последнего. Положительные аргументы считаются справа:Alt + 1Alt + . эквивалентно Alt + . ,Alt + 2Alt + .захватывает предыдущее слово и т. д. Alt + 0Alt + . — предыдущее слово, отрицательные аргументы продолжаются слева, например. Альт +-Альт + 1Альт + . — первый аргумент.
Я связалcopy-earlier-word
с ESC-,
. Там, где повторные вызовы ESC-.
вставляют последнее слово последовательных команд, возвращающихся в историю, повторные вызовы ESC-,
после ESC-.
вставляют предыдущее слово той же команды. Таким образом, с помощью следующего кода в вашем .zshrc
вы можете получить от -до -последнего слова предыдущей команды с помощью Alt + .Alt + , .
autoload -U copy-earlier-word
zle -N copy-earlier-word
bindkey '^[,' copy-earlier-word
¹ Существует несколько разумных определений «токена» в этом контексте. В этом ответе я исхожу из определения «нечто, что insert-last-word
считает отдельным словом».