1

У меня странная проблема с emacs, и я очень признателен за помощь. Я запускаю emacs в терминале на сервере Ubuntu, который настроен на VirtualBox на моем компьютере с Windows. Я пробовал оба Cygwin и Git-Bash (оба имеют mintty), и я получаю ту же проблему на обоих терминалах.

Проблема, которую я получаю, заключается в том, что, когда я активирую одну из моих пользовательских тем для emacs, текст искажается и становится нечитаемым. Это в основном закомментированный текст, который, кажется, сливается с другим текстом. Однако, когда я переключаюсь на одну из стандартных тем, которые поставляются с emacs, проблема исчезает. Так что, похоже, это проблема с пользовательскими темами (gotham и весь пакет на завтрашний вечер), потому что я также заметил, что на пользовательские темы влияет мятная тема, которую я использую, в то время как стандартные темы emacs не затрагиваются. этим. Поэтому, когда я включаю, например, тему gotham, открываю мятные опции и переключаю там цветовые темы, это также влияет на цвета gotham. Если я попробую то же самое, например, с темой wombat (которая поставляется с emacs), изменение мятных тем вообще не влияет на цвета emacs.

Я считаю, что проблемы связаны с темами Emacs. Проблема не должна возникать из-за использования мятных тем, поскольку я попытался запустить терминал с включенными параметрами по умолчанию (только с xterm-256color), и получил те же проблемы из пользовательских тем emacs. Это может быть проблема с xterm-256color, но я не могу проверить это, так как emacs вообще не загружает темы, когда включены только стандартные 8-битные цвета. Но еще раз, если mintty был виноват, то должны быть затронуты все темы emacs, а не только пользовательские, которые я скачал.

Так что мне интересно, если кто-нибудь знает, есть ли где-нибудь настройки в конфигурации emacs или в самих файлах тем, которые позволяют emacs игнорировать цвета терминала? Любой совет будет принята с благодарностью. В настоящее время я нахожусь в процессе анализа стандартных тем emacs на предмет пользовательских тем emacs, чтобы посмотреть, найду ли я что-нибудь, но я недостаточно разбираюсь в lisp, чтобы действительно понять, что я ищу.

ОБНОВЛЕНИЕ - После экспериментов я понял, что проблемные темы, кажется, либо отсутствуют, либо не загружают несколько цветов. Я видел это, просматривая различные темы с помощью M-x customize-themes . Некоторые из тем сохранят некоторый фон и цвет текста из предыдущей рабочей темы и смешают их вместе, что и дает искаженный вид текста. Нечитаемый текст печатается в два слоя поверх друг друга разными цветами и шрифтами.

2 ответа2

2

Получение курсива при работе с tmux

поскольку mintty поддерживает курсив с 2.7.6

Короткий и сладкий ответ

  1. Отредактируйте ваш $ TERM.terminfo, чтобы он включал sitm=\E[3m & ritm=\E[23m а затем перекомпилируйте с помощью tic

  2. Отредактируйте ваш .tmux.conf (я изменил как копию по умолчанию, так и пользовательскую копию), включив в нее: set -g default-terminal "tmux-256color"

  3. rm -rf /tmp/tmux-* а затем снова запустить сервер tmux, и он должен работать.

  4. Отказ от ответственности: я только проверял это на cygwin, никаких реальных системах Linux.

Предыстория и более длинное объяснение.

Я потратил около часа, чтобы понять это сегодня, надеюсь, это поможет другим понять это быстрее.

Короткий и сладкий фон; Я установил новую цветовую схему, которая использует курсив МНОГО.

Как и в большинстве вещей, всегда есть подвох. Цветовая схема работала отлично вместе с моей настройкой Cygwin, без проблем, пока я не открыл tmux. Tmux действительно плохо работает с такими вещами, как подсветка синтаксиса или курсив (без настройки). Следующее, что нужно сделать, это провести некоторые исследования. В своих путешествиях я наткнулся на следующие несколько ссылок.

Первый связан со вторым, и технически имел всю информацию, необходимую для решения моих проблем. Хотя это было не совсем приемлемо для меня, так как сначала вы писали свой собственный специальный файл terminfo, который ничего не узнает, как только вы начнете ssh'ing в других местах. Так что это было правильно, но я подумал, что, возможно, есть способ отредактировать terminfo текущего терминала, чтобы добавить поддержку курсива. После еще одного исследования я обнаружил, что это именно то, что я искал, но не смог решить проблему.

Надеюсь, я пошел в проект github для tmux, искал «курсив» и обнаружил проблему # 1137. Я бы посоветовал прочитать всю ветку, так как в ней есть очень полезная информация, даже если она не выделена курсивом.

После изменения значения $ TERM в моем .tmux.conf на tmux-256color и rm -rf в каталоге tmux, расположенном в tmp, tmux запустился и показал весь курсив!

1

Решено! Проблема возникла с некоторыми темами, использующими курсив, который, по-видимому, нарушил отображение текста. Я думаю, что проблема в этом случае может быть вызвана Mintty, но я не уверен. После изменения всех полей в теме, которые говорят :slant italic к :slant normal проблема была исправлена.

Я также нашел это объяснение по адресу https://github.com/mintty/mintty/issues/152:

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

редактировать: см. другой ответ для решения. Мой ответ здесь - скорее обходной путь, чем реальное исправление.

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