Самый элегантный способ определения доступных цветов в терминале для использования цветовых схем в vim?

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

Это отличается от проверки & t_Co переменная. Иногда я открываю vim с 8 цветами и могу установить t_Co = 256 для использования некоторых цветовых схем, но иногда (например, в Terminal.app в mac) установка этой переменной не вызывает ошибку, но t_Co не изменяется, потому что ограничение цвета Terminal.app составляет 16.

Факт: я знаю это ограничение только по опыту, я хотел бы знать, есть ли оно ' можно узнать это значение, вызвав функцию (если terminal_supports> 256) или что-то в этом роде.

Могу ли я сделать это, используя только функции viml, или мне нужно будет создать несколько сценариев bash и, например, вызывать их из vimrc? Я хотел бы иметь эту информацию в Linux, Mac и Windows (также используя Cygwin).

(Если я по какой-то причине не могу получить эту информацию из системы, есть ли таблица или в vim помощь информацию о различных терминалах и их цветовых возможностях? Если да, то я мог бы создать хеш-таблицу со всеми терминалами и их цветовыми возможностями.)

6
задан Somebody still uses you MS-DOS 4 January 2011 в 12:49
поделиться