Подсветка синтаксиса в Zsh с использованием 256 цветов?

Я использую Prezto с Zsh, и моя проблема с подсветкой синтаксиса, из которого строка образца

'function' 'bg=green'

Я мог бы также здесь, например,

'function' 'bg=blue,fg=yellow'

Тем не менее, я хочу воспользоваться своим 256-цветным терминалом (в моем случае это konsole), и в этом случае я бы подумал, что что-то вроде

'function' 'bg=$FG[021],fg=$FG[196]'

например, будет работать, учитывая, что я ранее загрузил модуль спектра.

Но я не могу заставить это работать. Я проверил это tput colors возвращает 256, и эта команда

 echo "$FG[214]Hello, World"

дает мне оранжевый вывод.

В любом случае, независимо от того, использую я спектр или нет, я бы хотел больше контролировать подсветку синтаксиса и использовать 256 цветов. Любой совет будет очень кстати!

2 ответа

Решение

Вы можете указать индекс цвета здесь, как показано ниже:

'function' 'bg=21,fg=196'

zsh-syntax-highlighting получает возможность указывать цвета из подсветки символов zsh, а не из escape-последовательностей ANSI напрямую. Это руководство по zsh описывает "fg =color", как показано ниже:

фг =цвет
Цвет переднего плана должен быть установлен на color, десятичное целое число или название одного из восьми наиболее широко поддерживаемых цветов.

Мы можем использовать индекс цвета вместо последовательностей ANSI escpape, которые хранятся в модуле спектра. $FG[...],

Ты можешь попробовать:

export TERM='xterm-256color'
Другие вопросы по тегам