emacs控制台模式Org-mode strike-through未按预期显示

时间:2014-06-12 13:01:38

标签: emacs terminal console org-mode strikethrough

我正在使用org-mode。在文本周围使用“+”,它在GUI中正确显示为删除线文本(例如: + striked-through + )。

但是这在emacs控制台模式下不起作用,文本没有显示出来:与默认面没有区别。

我的术语知道如何显示透视效果,因为它通过此测试正确显示了标记:

echo -e "\e[9mtest\e[0m"

所以这似乎是emacs没有使用SGR代码将文本呈现为删除。

你知道告诉emacs在控制台中使用删除的方法吗?或者我最终还没有确定某些内容?

1 个答案:

答案 0 :(得分:3)

(Linux)虚拟控制台未实现删除。一些终端仿真器可以做到这一点,但通常这些仿真器不会被称为" console"。最多,emacs可以显示一些其他类型的突出显示,例如颜色。

透视逃逸序列的参考是ECMA-48。但是,请记住,它是由委员会创建的,并不代表现有的实践。相反,它是现有和提议的实现的框架。其中描述的许多功能(30年后)尚未实施。您不会发现删除作为标准的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
};

它还使用tgetstrsee code)检索许多字符串功能。那里没有罢工。虽然emacs hardcodes some of the color转义(以解决termcap的限制),但驱动程序不包含任何可以执行删除操作的内容。

进一步阅读: