Завершение Zsh на второй команде или после псевдонима?

Если Вы хотите zip содержание данного каталога и хранилища zip файл в текущем каталоге, можно записать это:

(cd /some/dir && zip -r - dir-there) > file.zip
5
26.01.2015, 23:53
2 ответа

ну, я нашел одно решение из sudo плагина "oh my zsh", вот код, модифицированный из sudo плагина, я называю его proxyychains-ng-плагины. zsh, поместите его в $ZSH_CUSTOM/plugins/proxychain-ng/, и загрузите в ~/.zshrc, plugins=(), затем исходники ~/.zshrc :

# ------------------------------------------------------------------------------
# Description
# -----------
#
# sudo will be inserted before the command
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Dongweiming <ciici123@gmail.com>
#
# ------------------------------------------------------------------------------

proxychains-ng-command-line() {
[[ -z $BUFFER ]] && zle up-history
[[ $BUFFER != proxychains4\ * ]] && BUFFER="proxychains4 -q $BUFFER"
zle end-of-line
}
zle -N proxychains-ng-command-line
# Defined shortcut keys: [Esc] [Esc]
bindkey "\e^" proxychains-ng-command-line

так вначале наберите команду, затем в начало будет добавлена hist ESC+CTRL, proxyychains4.

но это не ответ на мой вопрос.

0
27.01.2020, 20:35

По умолчанию zsh расширяет псевдоним до завершения. Возможно, что ваша конфигурация отключит это; вы можете явным образом включить её, отключив опцию complete_aliases.

unsetopt complete_aliases

Для внешней команды типа proxyychains4, вы можете объявить, что ее аргументы сами по себе являются командой и ее аргументами, сделав ее завершение _precommand. Это не просто найти в документации, но вы можете наблюдать конфигурацию для подобных команд, таких как nohup, запустив echo $_comps[nohup]. Это происходит с "новой" системой завершения (после выполнения compinit).

compdef _precommand proxychains4
9
27.01.2020, 20:35

Теги

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