Emacs console mode Org-mode strike-through не отображается должным образом

Я использую org-mode. Используя " + " вокруг текста, он правильно отображается в GUI как сквозной текст (пример:+зачеркнута+).

но это не работает в режиме консоли emacs, текст не отображается зачеркнутым: нет никакой разницы с гранью по умолчанию.

мой термин знает, как отображать strike-through, поскольку он правильно отображает зачеркнутый текст с помощью этого теста:

echo -e "e[9mteste[0m"

таким образом, кажется, что emacs не использует код SGR для отображения текста как сквозной.

знаете ли вы, как сказать emacs использовать strike-through в консоли ? Или на моем конце что-то не установлено ?

1 ответов


виртуальная консоль (Linux) не реализует strike-through. Несколько терминальных эмуляторов делают это, но обычно они не называются "консольными". В лучшем случае emacs может показать некоторые другое тип подсветки, такой как цвет.

ссылка для забастовки через escape-последовательность ECMA-48. Однако имейте в виду, что он был создан комитетом и не представлял существующей практика. Скорее, это основа для существующие и предложил реализаций. Многие функции, описанные в нем, не были реализованы (30 лет спустя). Вы не найдете strike-through в качестве стандартной возможности terminfo (или termcap), просто потому, что немногие (если таковые имеются) терминалы реализовали эту функцию. Читать terminfo(5): нет возможности, определенной для этой цели.

если Вы читаете исходный код для emacs, легко увидеть, что он не поддерживает сквозной удар. драйвер для Emacs для терминалы term.c использует termcap и перечисляет поддерживаемые атрибуты видео в bitmask:

enum no_color_bit
{
  NC_STANDOUT    = 1 << 0,
  NC_UNDERLINE   = 1 << 1,
  NC_REVERSE     = 1 << 2,
  NC_ITALIC  = 1 << 3,
  NC_DIM     = 1 << 4,
  NC_BOLD    = 1 << 5,
  NC_INVIS   = 1 << 6,
  NC_PROTECT     = 1 << 7
};

Он также получает много возможностей, используя строку tgetstr (код). Там нет забастовки. В то время как emacs hardcodes некоторые цвета escapes (чтобы обойти ограничения termcap), драйвер не содержит ничего, что сделало бы забастовку.

далее чтение: