Я использую bash 4.4. У меня включены цвета, и я вижу цвета при нажатии, например, двойной вкладки после команды ls
(файлы и папки разных цветов). Внутри моей ~ / .inputr c есть настройка set colored-stats on
.
Однако я все еще не могу использовать цвета с командой complete
. Например, у меня есть следующий тестовый файл:
colored_output="\033[0;31mPaul\033[0m"
echo -e $colored_output # this prints 'Paul' in red
_hello () {
COMPREPLY=()
COMPREPLY+=("Bob")
COMPREPLY+=("Alice")
COMPREPLY+=("${colored_output}")
}
complete -o nosort -o filenames -F _hello hello
при его получении Paul
печатается красным, как и должно быть. Но вещи не работают, когда вы нажимаете двойную вкладку в hello (все это отображается в цвете терминала по умолчанию):
$ hello [hitting TAB TAB now]
Bob Alice \033[0;31mPaul\033[0m
Есть идеи, как получить цвет после автозаполнения TAB? Я думаю, мне как-то нужно сказать complete
, что \
следует использовать в качестве escape-символа?