У меня есть специальная функция завершения табуляции ZSH для одного из моих инструментов. Это работает хорошо, однако иногда инструменту требуется много времени, чтобы ответить; Есть ли способ отобразить какое-то указание на то, что что-то происходит во время работы инструмента (и до его завершения)?
Например, можно ли заставить его показывать сообщение ниже текущей строки, например:
prompt$ pypath /providers/conf<TAB>
Completing...
Проблема здесь в том, что курсор должен вернуться в свою предыдущую позицию (где я нажал «TAB»), как только станут доступны варианты завершения. Я знаю, что ZSH может это сделать, но может ли он отображать сообщение ДО завершения работы инструмента?
Вот мой текущий сценарий завершения:
#compdef pypath
# This does not work; it is only added when the whole thing ends
# _message -r "Completing..."
IFS=$'\n' path_candidates=($(pypath "${PREFIX}*" | sed 's|.*/||' | sort -u))
compset -P '*/'
if [ -z "$path_candidates" ]; then
compadd -x "No matches found."
else
compadd -q -S '/' $path_candidates
fi
print 'Completing...'
вместо_message
? - person Adaephon   schedule 24.02.2017print -n 'Completing...\r'
.-n
предотвращает печать новой строки, а\r
перемещает курсор в начало строки. После того, как список завершений напечатан, он должен перезаписать текст. - person Adaephon   schedule 24.02.2017