Просто нет.
Причина:
В настройках "set" или "shopt" нет опции для указания формата вывода предложений по завершению вкладок. Единственным исключением является среда COLUMNS , однако вы не можете изменить ее на другое значение.
Для пользовательских завершений (например, --option extension) вы можете переопределить функцию завершения выводом в stdout/stderr, чтобы отобразить что-то вроде ls -l
вместе с предложениями о завершении. Однако завершение имени файла жестко запрограммировано, вы не можете переопределить его complete
встроенным.
Вот короткий грязный пример для отображения подробной информации вместе с предложениями по завершению вкладки. Представьте , у вас есть программа foo
и она принимает четыре опции bar
barr
barrr
car
функция завершения загрязнена будет:
function _foo() {
local cmds=(bar barr barrr car)
local cur n s
if [ $COMP_CWORD = 1 ]; then
cur="${COMP_WORDS[1]}"
n="${#cur}"
# -- dirty hack begin --
echo
cat <<EOT | while read s; do [ "${s:0:n}" = "$cur" ] && echo "$s"; done
bar: choose this option if you feel well
barr: choose this option if you feel hungry
barrr: choose this option if you are starving
car: choose this option if you want a car
EOT
# ++ dirty hack end ++
COMPREPLY=($(compgen -W "${cmds[*]}" "$cur"))
fi
} && complete -F _foo foo
Теперь вы можете увидеть краткий справочный документ перед предложениями:
$ foo ba<tab>
bar: choose this option if you feel well
barr: choose this option if you feel hungry
barrr: choose this option if you are starving
r
(Единственный символ 'r' в последней строке - автозаполнение префикса ba
.)
И когда префикс неоднозначный, функция завершения оценивается дважды, список предложений заканчивается в конце:
$ foo bar<tab><tab>
bar: choose this option if you feel well
barr: choose this option if you feel hungry
barrr: choose this option if you are starving
bar: choose this option if you feel well
barr: choose this option if you feel hungry
barrr: choose this option if you are starving
bar barr barrr