12

我想让 vim 以斜体显示我的评论,我知道我需要放置

cterm=斜体

在里面

嗨 评论

我正在使用的 color.vim 文件中的行。但是,这对文本显示没有影响,我怀疑这与某些 Terminal.app 设置有关,除非我误解了 vim 语法。如果有人能告诉我如何启用此功能,我将不胜感激。

此外,我目前使用的是 Monaco 字体,它没有单独的斜体文件(但是,斜体语法突出显示不适用于 Consolas、Lucida、Bitstream Vera 或其他启用斜体或斜体的字体)。假设存在斜体字体的解决方案,我是否必须跳过任何进一步的障碍才能让 Monaco 工作?

感谢您的任何意见。

编辑:
我很惊讶我还没有得到答案;这似乎不太难做到。也许是的。或者,有人可以解释为什么这是不可能的吗?

4

7 回答 7

10

从 OS X Sierra 10.12 开始,默认终端应用程序支持斜体;但是,包含的 ncurses 版本包含未声明斜体支持的 xterm terminfo 文件(它们未定义sitm功能)。要在 Vim 中解决此问题,请将以下内容添加到您的 vimrc 文件中以定义启用/禁用斜体的终端命令:

let &t_ZH="\e[3m"
let &t_ZR="\e[23m"

然后确保您使用的字体支持斜体,并且您的颜色方案包含某些语法部分的斜体。或者,要在本地自定义语法高亮以格式化斜体注释,请将以下内容添加到您的 vimrc 文件中:

highlight Comment cterm=italic
于 2018-12-05T05:54:01.923 回答
6

从 SnowLeopard 开始,终端不支持斜体属性(SGR,值 3)。随时在http://bugreporter.apple.com提出请求。

更新:在 macOS Sierra 10.12 中的终端中添加了斜体支持。请注意,该版本的 ncurses 包含的 xterm terminfo 文件未声明斜体sitm功能。有关创建声明. _ _sitm

于 2010-07-26T18:58:11.720 回答
5

macOS Sierra 10.12 中的终端添加了斜体支持(在提出此问题后);但是,该版本的 ncurses 中包含的 xterm terminfo 文件并未声明斜体sitm功能。您可以通过创建本地 terminfo 文件来解决此问题,该文件声明功能并继承您当前使用的任何 terminfo 文件。

在以下说明中,使用TERM设置的任何名称。xterm-256color是终端内置默认配置文件使用的默认值。

创建一个名为xterm-256color-italic.terminfo

# A xterm-256color based TERMINFO that adds the escape sequences for italic.
xterm-256color-italic|xterm with 256 colors and italic,
  sitm=\E[3m, ritm=\E[23m,
  use=xterm-256color,

在您的终端中运行tic xterm-256-italic.terminfo,它将生成一个文件~/.terminfo/78/xterm-256color-italic. TERM当设置为文件名时,ncurses 将自动找到该文件。

TERM=xterm-256-italic单个终端配置文件设置:

简介

或者你可以替换/usr/share/terminfo/78/xterm-256color~/.terminfo/78/xterm-256color-italic

sudo cp /usr/share/terminfo/78/xterm-256color /usr/share/terminfo/78/xterm-256color-bak
sudo cp ~/.terminfo/78/xterm-256-color-italic /usr/share/terminfo/78/xterm-256color

然后你可以在vim中找到斜体字体:

vim

于 2018-01-30T02:25:29.600 回答
2

iTerm2 终端应用程序将支持斜体- 现在在每晚构建中。如增强请求中所述,您需要正确配置TERMINFO var。

于 2013-06-12T13:56:32.870 回答
0

Konrad,不了解 Terminal.app,但许多不同的终端仿真器都支持斜体。urxvt、konsole、gnome-terminal 浮现在脑海。

于 2009-08-25T09:34:09.853 回答
0

您似乎无法使用常规的 monaco-font。

似乎只有 MacVim 启用了斜体。

这里

于 2009-08-26T13:04:45.787 回答
0

在我的测试中,在vimrc 文件中添加set background=or就set background=dark可以了!set background=light即使我使用的是默认预装的 xterm-256color terminfo,其中没有斜体信息!即使我使用先前答案中建议的 xterm-256color-italic ,其他任何方法都不起作用。

基于先前答案的完整解决方案是:

let &t_ZH="\e[3m"
let &t_ZR="\e[23m"
highlight Comment cterm=italic
set background=dark " or set background=light or set background=

我不知道为什么会这样,向 Vim devs 提出了一个问题

于 2021-02-15T03:28:46.673 回答