在Ubuntu终端上使用Emacs从某些颜色主题中获取乱码和不可读的文本


1

我在emacs上遇到了这个奇怪的问题,非常感谢您的帮助。我在Windows PC上VirtualBox上安装的ubuntu服务器上的终端中运行emacs。我已经尝试了Cygwin和Git-Bash(都具有薄荷味),并且在两个终端上都遇到了相同的问题。

我遇到的问题是,当我为emacs激活自定义主题之一时,文本变得乱码且不可读。大部分是评论文字,似乎与其他文字融合在一起。但是,当我切换到emacs附带的默认主题之一时,问题就消失了。所以这似乎是自定义主题的问题(gotham和整个明天晚上的包),因为我也注意到自定义主题受我使用的薄荷主题的影响,而标准emacs主题不受影响通过这些。因此,当我启用例如gotham主题,并在其中打开mintty选项并切换颜色主题时,gotham的颜色也会受到影响。如果我尝试使用例如wombat主题(与emacs一起提供)的相同方法,则更改薄荷主题对emacs颜色完全没有任何影响。

我相信问题与emacs主题有关。问题不应该来自使用薄荷主题,因为我尝试启动启用了默认选项(仅启用xterm-256color)的终端,并从自定义emacs主题得到了同样的问题。xterm-256color可能是一个问题,但是我无法检查这一点,因为仅启用标准8位颜色时emacs根本不会加载任何主题。但是再一次,如果薄荷是错误的,那么所有emacs主题都将受到影响,而不仅仅是我下载的自定义主题。

因此,我想知道的是,是否有人知道emacs配置中或主题文件中是否有任何设置允许emacs忽略终端颜色?任何建议将不胜感激。我目前正在针对自定义emacs主题分析标准emacs主题,以查看是否找到了任何东西,但是我对Lisp并不十分了解,无法真正理解我的需求。

更新-经过更多实验后,我意识到有问题的主题似乎丢失了或无法加载几种颜色。我在用滚动浏览不同主题时看到了这一点M-x customize-themes。一些主题将保留以前工作主题的一些背景和文本颜色,并将它们混合在一起,从而产生乱码的文本。不可读的文本以不同的颜色和字体在彼此的两层上打印。

Answers:


2

使斜体与tmux一起使用

2.7.6版本开始,minty支持斜体字

简短而甜蜜的答案

  1. 编辑$ TERM.terminfo以包含sitm=\E[3mritm=\E[23m,然后使用重新编译tic

  2. 编辑您的.tmux.conf(我更改了默认副本和用户副本)以包括: set -g default-terminal "tmux-256color"

  3. rm -rf /tmp/tmux-* 然后再次启动tmux服务器,它应该可以工作。

  4. 免责声明:我只在cygwin上测试过,没有实际的linux系统。

背景故事和冗长的解释。

我今天花了大约一个小时来解决这个问题,希望它可以帮助其他人更快地解决这个问题。

简短而甜美的背景;我安装了很多使用斜体的新colorcheme。

与大多数事情一样,总是有一个陷阱。Colorscheme与我的Cygwin装置配合使用时效果很好,直到我打开tmux 之前都没有任何障碍。Tmux确实不能很好地使用语法突出显示或斜体(无配置)之类的东西。因此,下一步要做的是重新搜索。在旅行中,我遇到了以下几个 链接

第一个链接到第二个链接,从技术上讲,它具有解决我的问题所需的所有信息。但是,这对于我来说还是不太可接受的,因为第一个方法是您编写自己的特殊terminfo文件,一旦您开始在其他地方进行切换,该文件将无法识别。所以这是正确的,但是我认为可能有一种方法可以编辑当前终端的terminfo以添加斜体支持。经过更多研究后,我发现正是我想要的,但是并没有完全解决问题。

直觉上,我去了github项目寻找tmux并搜索了“斜体”,并提出了问题#1137。我建议您通读整个线程,因为它不仅包含斜体字,还具有一些非常有用的信息。

将我的.tmux.conf中的$ TERM值更改为'tmux-256color'并rm -rf'进入tmp中的tmux目录后,tmux启动并显示所有斜体!


1

解决了!问题出现在某些使用斜体的主题上,这显然破坏了文本的呈现。我认为问题可能是Mintty造成的,但我不确定。在更改主题的所有字段之后:slant italic:slant normal对该问题进行了修复。

我还在https://github.com/mintty/mintty/issues/152找到了这个解释:

麻烦的是,终端基本上是为矩形字符单元设计的,因此倾斜的字母并不适合。在尝试使用斜体字体时,字母的某些部分被涂在字符单元的外部,因此它们最终也会被切断或无法正确擦除。”

编辑:请参阅其他答案以获取解决方案。我在这里的答案更多是替代解决方法,而不是实际解决方法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.