vimrc如何使注释变为斜体

48

如何修改 ~/.vimrc文件,以使代码中的注释变成斜体字?

在我的~/.vimrc文件中,我已经添加了以下内容:

highlight Comment ctermfg=blue

那会使评论变为蓝色。我需要做什么不同的事情来使它们变成斜体?

6个回答

54

首先,您应该检查终端是否能够显示斜体文本。在您的终端中键入以下命令(-e标志确保转义代码被解释)

首要的是,您应该检查终端是否能够显示斜体文本。在您的终端中键入以下命令(-e标志确保转义代码被解释)

echo -e "\e[3m foo \e[23m"
如果看到foo,那么就可以了,否则需要更换终端(Gnome终端和Konsole是不错的选择)。
然后,您应该帮助Vim识别您正在使用的终端类型,在您的~/.bashrc中添加以下内容:
export TERM="xterm-256color"

现在您可以尝试并查看是否足够,在一个新文件中打开vim foo.html,其中包含以下内容

<i>foo</i>

你看到foo被斜体展示了吗?如果没有,那么你需要再往前走一点。现在Vim不知道如何切换到斜体模式的转义码,你需要告诉它(这是最困难的部分,我花费了几年时间才弄明白)。

请将以下两行代码放入你的~/.vimrc文件中:

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

这些是我们在终端中使用过的同样的转义码,请注意 ^[ 不是文字本身,而是代表转义字符,你可以在插入模式下通过按下 CTRL-V 以及后跟着 ESC 按键来插入它(参见 :help i_CTRL-V)。

现在重新打开之前创建的文件 foo.html,然后您应该能够看到 foo 字符串呈斜体形式;如果没有,那么我无法再帮助您了。否则,您就快完成了,只剩最后一步。

在您的 ~/.vimrc 文件中添加以下内容:

highlight Comment cterm=italic

加载任何配色方案后。


是的,据我所知 :-) - Gabriele Lana
检查不需要使用echo -e启用反斜杠转义的解释吗? - Benjamin W.
@GabrieleLana 我的意思是 echo -e "\e[3m foo \e[23m" - Benjamin W.
@BenjaminW。是的,修改不知怎么丢失了 :-/ 现在应该没问题了。 - Gabriele Lana
2
@GabrieleLana 在我的终端中运行 NeoVim 0.2.0(Gnome Terminal 3.22.1、Terminix 1.3.5、Tilda 1.3.3),我必须设置 highlight Comment gui=italic 才能使其正常工作。 - Franey
显示剩余2条评论

49
highlight Comment cterm=italic gui=italic
您需要使用一种带有斜体字集的字体,以及一个能够显示斜体字的终端。此外,如果您使用的颜色方案不同于默认方案,则应在加载颜色方案之后,在您的~/.vimrc中加入上述行,以避免颜色方案覆盖它。 cterm 用于终端,而 gui 用于图形化 Vim 客户端。

1
请看我的编辑。它可以放在你的 ~/.vimrc 文件中,但是它应该在颜色方案文件加载后加载,这样颜色方案文件就不会覆盖你的自定义设置。如果你没有使用颜色方案文件(而且听起来你没有),不用担心。 - michaelmichael
2
那么我在哪里可以找到带斜体设置的字体,并且我的 Kubuntu 终端能够显示斜体吗? - john-jones
1
我从vim转到neovim后,斜体字不再起作用了。添加gui=italic解决了我的问题,尽管我在终端中运行nvim。 - Git.Coach
@Git.Coach,你是如何在Novim中设置注释的斜体字体的? - 71GA
这对我来说不起作用,除非还覆盖其他注释中的转义代码。 - redreceipt
显示剩余4条评论

28

在我的情况下,我必须将以下内容放入我的vimrc文件中:

let &t_ZH="\e[3m"
let &t_ZR="\e[23m"
highlight Comment cterm=italic

请注意,它与以下内容不同

set t_ZH=^[[3m
set t_ZR=^[[23m
highlight Comment cterm=italic

前者对我有用,而后者没有。


在Ubuntu 14.04.3上,“let” 代替“set” 对我同样奏效。现在我很高兴地在vim中看到了斜体字。 - adampasz
太棒了,+1,因为前面的解决方案只使用ASCII字符的字面形式。干杯! - Peter Varo
2
对于后者,您可以通过使用C-v Esc而不是键入^ [来执行^ [ - Mark K Cowan
这个能在Mac上运行,不像其他已被接受的解决方案。 - Maritn Ge

8

对于像gvim这样的GUI环境,一个简单的

highlight Comment gui=italic

它是否做到了。


1
这对我有用,而且我没有使用GUI环境。不确定使用4k显示器是否相关。 - Ignacio

3

michaelmichael的回答应该能解决大多数情况。但是,万一您需要针对在gvim中没有斜体(而是倾斜或其他)的字体进行操作,可以尝试像下面这样在~/.gvimrc中设置:

highlight Comment font=Bitstream_Vera_Sans_Mono_Oblique:h14

其中h14是字体大小。这种字体应该与您的普通字体具有相同的单元格大小,因此不要使用完全不同的字体。


0
因为我正在使用Solarized 色彩方案,所以我必须像Solarized #120建议的那样编辑.vim/colors/solarized.vim,将第137-157行替换为以下内容:
if has("gui_running") || ( has("unix") && system("tput sitm") == "\033[3m" )
    let s:terminal_italic=1
else
    let s:terminal_italic=0
endif

这是在遵循this Gist中的说明并将这两行添加到我的.vimrc之后,使用Ctrl-vEsc输入^[

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

(感谢Gabriele Lana提供的提示,让我将这些行添加到我的.vimrc文件中。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接