1

В качестве основной рабочей станции я использую Mac под управлением OS X 10.5. Я провожу большую часть дня ssh'd в удаленных системах и работаю над уродством vim. Я хочу поэкспериментировать с разными цветовыми схемами.

Проблема, с которой я сталкиваюсь, заключается в том, что мои настройки Terminal.app переопределяют цвета, указанные в цветовой схеме vim. Очень простой пример - цвет фона. Если я выберу, скажем, цветовую схему пустыни в vim на удаленном сервере, фон должен быть черным. Если я затем использую настройки терминала, чтобы установить интенсивный оранжевый цвет фона, мои настройки терминала выигрывают.

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

1 ответ1

2

[ Обновление: Начиная с Mac OS X терминал Lion 10.7 поддерживает цвета BCE и 256 цветов.]

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

  1. Терминал не поддерживает модель удаления цвета фона (BCE) †. vim требуется терминал BCE, чтобы заполнить цвет фона для пустых областей.

  2. Терминал поддерживает только 16 цветов ANSI, а не расширенную 256 цветовую модель. Некоторые цветовые схемы vim, такие как "desert256", требуют поддержки 256 цветов для выбора определенных цветов.

Если вы используете ту же настройку в Xterm (запустите vim на удаленной машине с выбранной вами цветовой схемой), и она будет работать как положено, то вы столкнетесь с одним или обоими из них.

† BCE означает, что определенные последовательности управления терминалом, такие как "стирать до конца строки" и "очистить экран", будут заполнять очищенные области текущим выбранным цветом фона текста. Эмуляторы терминала не BCE отображают любой статический фон, который они обычно отображают. Некоторые программы определяют, поддерживает ли терминал BCE (через terminfo), и "вручную" заполняют пустые области пробелами, а vim - нет.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .