我可以在gnome终端中获取斜体字吗?


13

经过大量搜索之后,我无法找到一种方法来使gnome-terminal显示斜体字体。我正在运行3.6.2版。

我特别希望vim以斜体显示注释;我已经添加

highlight Comment cterm=italic

到我的.vimrc,但是它不起作用。

有谁知道这可以做到吗?


这个问题有帮助吗?它建议使用ANSI转义序列:\e[3m 是否支持ANSI斜体转义码的终端?
Nattgew 2014年

Answers:


14

Gnome终端确实支持斜体(至少在版本3.8.4中)。您可以通过执行来测试终端对斜体的支持$ echo -e "\e[3mfoo\e[23m"。如果看到foo以斜体打印foo,则终端支持它。

然后,您必须在中插入以下内容.vimrc

set t_ZH=^[[3m
set t_ZR=^[[23m

注意,这^[是一个字符,可以在vim插入模式下通过键入插入<ctrl>-v <esc>

之后,您必须告诉vim斜体注释。:highlight Comment cterm=italic当打开带有某些注释的文件时,可以在vim中执行,以快速测试它是否有效。评论应立即变为斜体。

我在reddit上找到了上述说明(在vim和tmux中为斜体),但是我不必遵循那里列出的所有步骤。我的答案是对我有用的说明的精简版。


谢谢!设置命令是我在vimrc中缺少的命令。现在,我在终端vim中的评论用斜体显示,就像我喜欢它们的方式一样。
Chronos 2014年

不要错过关于^ [的注释,否则您会很困惑!
杰里米·西

1
gnome终端3.6.2也支持斜体!最后,我在减价中使用斜体,谢谢!
Ayrat 2015年

3

不。我读man 5 terminfo了一下以找出处理斜体的终端ESCape序列(您将终端发送给终端的原因)称为斜体:

man 5 terminfo | egrep 'italics|Cap-|Code'|head -n 10| tail -n 4
               Variable                   Cap-            TCap               Description  
                String                    name            Code  
       enter_italics_mode                 sitm            ZH             Enter italic mode  
       exit_italics_mode                  ritm            ZR             End italic mode  

然后,我曾经infocmp转储每个终端的描述,所以我可以看到哪些终端支持斜体:

for i in $( find /usr/share/terminfo -type f ) ; do 
    j=${i##*/}; hdr="$( infocmp $j | head -n 1)";  
    infocmp $j | egrep -q 'sitm|ZH' 
    if [ $? = 0 ] ; then echo $hdr; fi; 
done
# Reconstructed via infocmp from file: /usr/share/terminfo/r/rxvt-unicode-256color
# Reconstructed via infocmp from file: /usr/share/terminfo/o/opus3n1+
# Reconstructed via infocmp from file: /usr/share/terminfo/i/iris-color

因此,这三种终端类型(rxvt-unicode-256color,opus3n1 +,iris-color)都支持斜体。其他人没有。

由于找不到“ gnome-terminal”的终端定义(请参阅ls /usr/share/terminfo/g/,我一律使用斜体。尝试infocmp $TERM查看终端支持的功能。请阅读man tput以了解如何发出控制序列。


感谢您的回答,也很抱歉没有尽快确认。我已改用Urxvt;它是高度可定制的,并且通过一点点的努力,我就能使其看起来几乎与我的旧gnome终端设置完全一样。
Chronos
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.