【发布时间】:2011-03-30 11:53:46
【问题描述】:
如何更改 ~/.vimrc 以使代码中的 cmets 变为斜体?
在我的~/.vimrc 文件中,我有:
highlight Comment ctermfg=blue
这会使 cmets 变蓝。我需要做些什么不同的事情才能让它们变成斜体?
【问题讨论】:
标签: vim comments highlight italics
如何更改 ~/.vimrc 以使代码中的 cmets 变为斜体?
在我的~/.vimrc 文件中,我有:
highlight Comment ctermfg=blue
这会使 cmets 变蓝。我需要做些什么不同的事情才能让它们变成斜体?
【问题讨论】:
标签: vim comments highlight italics
highlight Comment cterm=italic gui=italic
您需要一个带有斜体集的字体和一个能够显示斜体的终端。此外,如果您使用非默认配色方案,则上述行应在配色方案加载到您的 ~/.vimrc 之后出现,这样配色方案就不会覆盖它。
cterm 使它在终端中工作,gui 用于图形 Vim 客户端。
【讨论】:
~/.vimrc 中,但它应该在加载配色方案文件之后出现,这样配色方案文件就不会覆盖您的自定义设置。如果您没有使用配色方案文件(听起来好像没有),请不要担心。
gui=italic 为我解决了这个问题,即使我在终端中运行 nvim。
michaelmichael 的回答应该可以解决大多数情况。但是,以防万一您需要在 gvim 中使用没有斜体的字体(而是斜体或其他字体),您可以在 ~/.gvimrc 中尝试类似的操作
highlight Comment font=Bitstream_Vera_Sans_Mono_Oblique:h14
其中 h14 是字体大小。不过,此字体应该与您的普通字体具有相同的单元格大小,所以不要使用完全不同的字体。
【讨论】:
首先,您应该检查您的终端是否能够以斜体显示文本。在您的终端类型中(-e 标志确保转义码被解释)
echo -e "\e[3m foo \e[23m"
如果你看到 foo 就可以了,否则你需要更换终端(Gnome Terminal 和 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
加载任何配色方案后。
【讨论】:
echo -e 才能解释反斜杠转义?
对于像 gvim 这样的 GUI 环境,一个简单的
highlight Comment gui=italic
做到了。
【讨论】:
在我的情况下,我必须把它放在我的 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
前者对我有用,而后者没有。
【讨论】:
C-v Esc 执行^[,而不是通过键入^ [
因为我使用的是Solarized colorscheme,所以我必须按照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。)
【讨论】:
如果所有答案都不起作用,请移动
highlight Comment cterm=italic
到你的 .vimrc 的 end。它可能会被您的主题设置之一覆盖
【讨论】: