Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何";突出显示“;在Vim中使用文本?_Vim_Terminal_Syntax Highlighting_Neovim - Fatal编程技术网

如何";突出显示“;在Vim中使用文本?

如何";突出显示“;在Vim中使用文本?,vim,terminal,syntax-highlighting,neovim,Vim,Terminal,Syntax Highlighting,Neovim,Vim脚本的这三行通过在其周围放置[[[和]]来“突出显示”我的源代码中的TODO的所有实例 :set t_Co=1 :highlight Braces start=[[[ stop=]]] :call matchadd("Braces", "TODO") 不幸的是,这只适用于“正常终端”。这就是为什么我必须将t\u Co设置为1 在彩色终端或gui中可以实现类似的功能吗?(还是在NeoVim?)。这可能是用元信息扩充代码的一种非常有用的方法。请记住,Vim是一个文本编辑器;这些文件主要按原样

Vim脚本的这三行通过在其周围放置
[[[
]]
来“突出显示”我的源代码中的
TODO
的所有实例

:set t_Co=1
:highlight Braces start=[[[ stop=]]]
:call matchadd("Braces", "TODO")
不幸的是,这只适用于“正常终端”。这就是为什么我必须将
t\u Co
设置为
1


在彩色终端或gui中可以实现类似的功能吗?(还是在NeoVim?)。这可能是用元信息扩充代码的一种非常有用的方法。

请记住,Vim是一个文本编辑器;这些文件主要按原样显示文件内容。为了用元信息扩充代码,Vim提供:

  • (语法)突出显示:颜色和文本属性,如粗体或斜体
  • 隐藏:将匹配项隐藏或压缩为零/单个字符
  • 标志(显示在窗口左侧的一列中)
你的方法是一种滥用原始终端代码定义的黑客行为;这些是由终端解释的不可见控制序列,但您发送的是可见文本

正如您在
:帮助突出显示args中发现的那样:

start=
end=
参数(您的黑客所依赖的)仅支持“普通终端”,而不支持字符和gui。这就是为什么您必须
:设置t_Co=1
(即强制非彩色端子)才能工作


由于这些缺点(以及更多:重绘问题,垂直导航关闭),我建议放弃这个,使用上面列出的“已批准”方法之一。Vim的用户太多了,他们似乎也对他们很好。

请记住,Vim是一个文本编辑器;这些文件主要按原样显示文件内容。为了用元信息扩充代码,Vim提供:

  • (语法)突出显示:颜色和文本属性,如粗体或斜体
  • 隐藏:将匹配项隐藏或压缩为零/单个字符
  • 标志(显示在窗口左侧的一列中)
你的方法是一种滥用原始终端代码定义的黑客行为;这些是由终端解释的不可见控制序列,但您发送的是可见文本

正如您在
:帮助突出显示args中发现的那样:

start=
end=
参数(您的黑客所依赖的)仅支持“普通终端”,而不支持字符和gui。这就是为什么您必须
:设置t_Co=1
(即强制非彩色端子)才能工作


由于这些缺点(以及更多:重绘问题,垂直导航关闭),我建议放弃这个,使用上面列出的“已批准”方法之一。Vim用户太多了,他们似乎也很好。

@JanHudec,默认情况下你的t_Co设置为什么<代码>设置t\U Co?
。对我来说,它只有在
t_Co
1
时才起作用。为什么您更喜欢使用颜色和文本属性的“正常”高亮显示?这不会弄乱屏幕和垂直导航吗?什么是“普通终端”?您为什么
设置t_Co=1
?是什么让你认为除了“普通终端”之外,你不能突出显示任意文本?为什么在第二行中使用
突出显示
而不是
语法
。例如,在C类定义的末尾,我可以在结束的花括号后面写一些类似“类的结尾”的东西。我可能只会在行尾使用它来增强,这样就不会弄乱我的垂直对齐。@romani“normal terminal”是vim文档中使用的表达式
h:highlight args
,意思类似于“non-color terminal”。我的问题不是用颜色突出显示文本,而是用文本“突出显示”文本。我不知道按照你的建议使用语法的利弊。@JanHudec,默认情况下你的语法设置是什么<代码>设置t\U Co?
。对我来说,它只有在
t_Co
1
时才起作用。为什么您更喜欢使用颜色和文本属性的“正常”高亮显示?这不会弄乱屏幕和垂直导航吗?什么是“普通终端”?您为什么
设置t_Co=1
?是什么让你认为除了“普通终端”之外,你不能突出显示任意文本?为什么在第二行中使用
突出显示
而不是
语法
。例如,在C类定义的末尾,我可以在结束的花括号后面写一些类似“类的结尾”的东西。我可能只会在行尾使用它来增强,这样就不会弄乱我的垂直对齐。@romani“normal terminal”是vim文档中使用的表达式
h:highlight args
,意思类似于“non-color terminal”。我的问题不是用颜色突出显示文本,而是用文本“突出显示”文本。我不知道按照你的建议使用语法的利弊。
There are three types of terminals for highlighting:
term      a normal terminal (vt100, xterm)
cterm     a color terminal (MS-DOS console, color-xterm, these have the "Co"
          termcap entry)
gui       the GUI