Одним из семейств инструментов для этого является семейство UCSPI-SSL. Пакет ucspi-ssl Уильяма Бакстера породил пакет ucspi-ssl Скотта Гиффорда, который породил пакет ucspi-ssl Эрвина Хоффмана. В каждом из них вы запускаете свою программу с sslserver
, которая обрабатывает прием входящих соединений, квитирование SSL и шифрование / дешифрование данных, а ваша программа просто передает открытый текст через стандартный ввод и вывод, как обычный инструмент.
sslsvd
Геррита Пейпа, один из инструментов в наборе инструментов ipsvd, выполняет аналогичную работу.
sslserver
. UCSPI-SSL. 2015. Суперскрипт. sslsvd
. ipsvd. Геррит Папе. sslio
. ipsvd. Геррит Папе. Если вы откроете файл, содержащий определение функции автозагрузки для git
completion:
В моей системе ubuntu это:
/usr/share/zsh/functions/Completion/Unix/_git
в верхней части файла вы увидите #compdef
объявление
#compdef git git-cvsserver git-receive-pack git-upload-archive git-upload-pack git-shell gitk tig
вы можете попробовать добавить свои псевдонимы к #compdef
определению, например,
#compdef git git-cvsserver git-receive-pack [...] tig gch grb
^^^ ^^^
Затем запустите новый shell, чтобы загрузить эту новую директиву.
Затем попробуйте вызвать завершение.
/usr/share/zsh/functions/Completion/Unix/_git
? Это файл, который содержит автозагружаемую "функцию", определяющую поведение завершения для всех команд, определенных в директиве #compdef
, в данном случае семейства команд git
. Он находится в fpath
и автозагружается compinit при инициализации системы завершения.
#compdef
?из man zshcompsys
#compdef name ... [ -{p|P} шаблон ... [ -N имя ... ] ]
Файл будет сделан автозагружаемым, и определенная в нем функция будет вызываться при заполнении имен, каждое из которых либо является имя команды, аргументы которой должны быть заполнены, либо один из специальных контекстов в форме -context-, описанных ниже.
Я делал что-то похожее. Вы используете oh-my-zsh? Если да, убедитесь, что вы включили плагин zsh-completions в вашем .zshrc
файле. Я бы также рекомендовал плагин zsh-autosuggestions.
После этого вам нужно добавить следующее в файл .zshrc
(если его там еще нет)
fpath=(~/.zsh/completions $fpath)
autoload -U compinit && compinit
У меня была такая же проблема. Вы должны проверить, установлена ли опция completealiases
. Что он делает, так это предотвращает внутреннюю замену псевдонимов до попытки завершения. В моем случае удаление setopt completealiases
из моего .zshrc решило проблему. Вы можете попробовать unsetopt completealises
, если о -мой -zsh устанавливает его.