Я не уверен на 100%, но я думаю, что он уже может быть почти идемпотентным из-за того, как работает APK. Основываясь на том, что я могу сказать, APK вернет успех, ничего не делая, если вы скажете ему добавить пакет, который уже установлен, по крайней мере (, это то, что он делает при попытке установить python2 в системе, которую я уже получил. установлен на ). Единственное потенциальное предостережение заключается в том, что он обновит пакет, если будет более новая версия, но я не думаю, что есть какой-либо способ без встраивания сценария оболочки в книгу воспроизведения, который вы можете обойти (, который вам придется анализировать вывод apk version
, чтобы выяснить, будет ли он обновлять его или нет ).
ESC-_
больше похожа на привязку клавиш в стиле emacs
-, но если вы хотите добавить ее и в режим вставки в стиле vi
-, вы можете сделать:
bindkey -M viins '\e_' insert-last-word
(лучший в~/.zshrc
).
Если вы также хотите, чтобы _
в режиме cmd вставлял последнее слово после курсора и переключался в режим вставки, например bash
и ksh93
, похоже, (недокументированный виджет vi-yank-arg
вbash
)], вы можете сделать:
vi-yank-arg() {
NUMERIC=1 zle.vi-add-next
zle.insert-last-word
}
zle -N vi-yank-arg
bindkey -M vicmd _ vi-yank-arg
Который, как и в режиме emacs
, будет добавлять$NUMERIC
е последнее слово из предыдущей команды(bash
и ksh93
, похоже, игнорирует числовой аргумент ).