У меня есть функция заполнения вкладок ZSH для одного из моих инструментов. Он работает хорошо, однако иногда инструмент требует ответа на долгое время; есть ли способ показать какое-то указание на то, что что-то происходит во время работы инструмента (и до того, как он завершит работу)?Показывать индикацию состояния выполнения в то время как пользовательский набор 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
Вы пробовали просто использовать 'печати 'Завершение ...' вместо '_message'? – Adaephon
Да, но после этого он не удаляется, что делает дополнение дополнением к завершению «Завершение ...». – Whyte
В этом случае вы можете попробовать 'print -n 'Completing ... \ r''. '-n' предотвращает печать новой строки, а' \ r' перемещает курсор в начало строки. Как только список завершений будет напечатан, он должен перезаписать текст. – Adaephon