Бледные цвета в VIM в Xterm на OpenSuSE с esckeys

Рассмотрим следующую настройку. Редактор Vim (>= 7.3), запускаемый в xterm с темным фоном и настройками Vim background=dark, syn on и изначально noesckeys, Благодаря настройке темного фона и включенной подсветке синтаксиса ключевые слова выделяются яркими и жирными цветами. Теперь, если я выпущу :set esckeys (либо через.vimrc, либо в интерактивном режиме) и я в OpenSuSE (12.3), все цвета становятся бледными (но что-то отличное от background=light) либо мгновенно, либо после нескольких нажатий клавиш. Я не могу воспроизвести это поведение в любой системе Debian. Теперь, к сожалению, я хочу установить esckeys, потому что это полезно с latexsuite.

В чем причина этого утомленного поведения или как я могу определить причину?

Есть ли обходной путь, позволяющий одновременно использовать смелые цвета и символы?

1 ответ

Это будет непросто, поэтому давайте вместе разработаем вики-ответ сообщества.

Происхождение исходной цветовой схемы не совсем понятно. Взгляд на :scriptnames с --noplugins дает представление о том, откуда это может прийти:

  1: /etc/vimrc
  2: /usr/share/vim/vim73/syntax/syntax.vim
  3: /usr/share/vim/vim73/syntax/synload.vim
  4: /usr/share/vim/vim73/syntax/syncolor.vim
  5: /usr/share/vim/vim73/filetype.vim
  6: ~/.vimrc
  7: /usr/share/vim/vim73/syntax/nosyntax.vim
  8: /usr/share/vim/vim73/ftplugin.vim
  9: /usr/share/vim/vim73/indent.vim

Единственный файл, который содержит определения цвета $VIMRUNTIME/syntax/syncolor.vim, Он содержит определения, которые имеют term=bold или же term=underline а также cterm=NONE для большинства основных моментов, когда &background == "dark", Предполагается, что Vim изначально использует term атрибутов. Зачем?

С esckeys настройка Vim повторно инициализирует терминал после нажатия клавиши (например, движения). В частности, он выдает escape-последовательность, которая очищает экран и перерисовывает все. Зачем?

Во время реинициализации, по-видимому, это syntax on снова, таким образом, косвенно ссылаясь $VIMRUNTIME/syntax/syncolor.vim снова (strace показывает, что файл снова читается). На данный момент Vim явно использует cterm атрибуты и очищает все атрибуты смелости, объясняющие наблюдение.

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

Другие вопросы по тегам