zsh: вставить последний аргумент предыдущей команды

Я не уверен на 100%, но я думаю, что он уже может быть почти идемпотентным из-за того, как работает APK. Основываясь на том, что я могу сказать, APK вернет успех, ничего не делая, если вы скажете ему добавить пакет, который уже установлен, по крайней мере (, это то, что он делает при попытке установить python2 в системе, которую я уже получил. установлен на ). Единственное потенциальное предостережение заключается в том, что он обновит пакет, если будет более новая версия, но я не думаю, что есть какой-либо способ без встраивания сценария оболочки в книгу воспроизведения, который вы можете обойти (, который вам придется анализировать вывод apk version, чтобы выяснить, будет ли он обновлять его или нет ).

1
15.01.2020, 19:21
1 ответ

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, похоже, игнорирует числовой аргумент ).

0
27.01.2020, 23:55

Теги

Похожие вопросы