Я приведу вам пару примеров.
- Добавление завершения для псевдонима
Если у вас есть псевдоним для pull, как этот:
alias gp='git push'
тогда вы можете определить псевдоним для использования того же завершения, что и git-push
, выполнив.
compdef _git gp=git-push
- Добавление завершения для новой команды
Это сложнее.Написание сценариев завершения для zsh не является тривиальным, вы можете взглянуть на те в этом проекте для некоторых указаний.Например, взгляните на сценарий завершения для git-wtf
- Повторное использование существующего завершения, но с изменениями
Если у вас есть скрипт для поиска в журнале, например:
query="$1"
shift
git log -S"$query" "$@"
Вы хотите использовать совокупность git-log
с небольшой модификацией: сначала вы хотите завершить поиск строки, а затем использоватьобычные опции для git-log
.Затем вы можете использовать это:
_git-search () {
if (( CURRENT == 2 )); then
_message "search string"
return
fi
CURRENT=$(( $CURRENT - 1 ))
_git-log
}
_git-search "$@"
РЕДАКТИРОВАТЬ: Кроме того, чтобы фактически использовать ваши недавно определенные файлы завершения, вы должны добавить каталог, где они хранятся, в fpath