标签: vim-syntax-highlighting

如何部分“链接”突出显示组?

我正在尝试在我的.vimrc

hi link SyntasticErrorLine SignColumn
hi link SyntasticErrorSign SignColumn
hi SyntasticErrorSign guifg=red ctermfg=red
Run Code Online (Sandbox Code Playgroud)

我想要的是具有SyntasticErrorSign与背景相同SignColumn但具有自定义前景色的突出显示组。

Vim 文档说:

- 只要你对一个链接的组使用 ":highlight" 命令,链接就会被删除。

所以,我这样做的方式无论如何都行不通,有没有办法实现这一目标?

vim syntax-highlighting vim-syntax-highlighting

7
推荐指数
2
解决办法
1593
查看次数

在vim上将项目设置为更高的突出显示优先级

我希望非ascii字符显示在这里讨论,但是当非ascii字符在注释中时,语法高亮消失.稍微调查一下这个问题,我在vim-manual上发现,先前启动的项目具有更高的优先级(第3项).来自help :syn-priority:

当多个语法项可能匹配时,将使用以下规则:

  1. 当多个匹配或区域项目在同一位置开始时,最后定义的项目具有优先级.

  2. 关键字优先于匹配和区域项.

  3. 从较早位置开始的项目优先于在以后位置开始的项目.

我目前正在使用这个:

syntax match nonascii "[^\x00-\x7F]" 
highlight nonascii cterm=underline ctermfg=red ctermbg=none term=underline
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下选项给nonascii匹配项更高优先级nextgroup:

syntax match nonascii "[^\x00-\x7F]" nextgroup=Comment
Run Code Online (Sandbox Code Playgroud)

contains选项:

syntax match nonascii "[^\x00-\x7F]" contains=ALL
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我还尝试暂时禁用评论(highlight clear Comment)而没有达到预期的效果(我的评论没有突出显示,但是nonascii继续没有突出显示).我错过了什么?

vim vim-syntax-highlighting

7
推荐指数
1
解决办法
1356
查看次数

停止在Vim中突出显示Go文件的尾随空格

出于某种原因,似乎带有Go文件的vim的默认设置是用红色突出显示尾随空格.在某种程度上这很好,但大多数情况下我发现它很烦人,因为每次我输入一个空格时它都会以红色突出显示.有没有办法阻止这种行为?我只用Go文件体验过这个.下面是我的vimrc,但我认为我没有放任何会影响它的东西.

set nocompatible
syntax on
set autoindent
set tabstop=4 softtabstop=0
autocmd FileType go set tabstop=8 softtabstop=0
set formatoptions=tcroql
set relativenumber
set incsearch
set hlsearch
set smartindent
filetype indent on
Run Code Online (Sandbox Code Playgroud)

vim go vim-syntax-highlighting

7
推荐指数
1
解决办法
1136
查看次数

在Vim中自定义语法高亮显示

如何突出以sql_引号开头并在引号内的字符串?

我的日志文件:

MGPostgreSQLConnection.OpenQuery; "sql_p_factory_history"-ExecTime: 47ms
2010-11-12T17:28:18+01:00;custom; MGPostgreSQLConnection.OpenQuery; "sql_p_factory_history"-ExecTime+FetchTime: 47ms
2010-11-12T17:28:18+01:00;custom; MGPostgreSQLConnection.OpenQuery; "sql_factory"-ExecTime: 47ms
2010-11-12T17:28:18+01:00;custom; MGPostgreSQLConnection.OpenQuery; "sql_factory_contactperson"-ExecTime+FetchTime: 62ms
Run Code Online (Sandbox Code Playgroud)

我的vimrc(当然这不起作用):

au BufRead,BufNewFile *.log syn match "sql_*"
au BufRead,BufNewFile *.log hi sql guifg=white guibg=red
Run Code Online (Sandbox Code Playgroud)

vim vim-syntax-highlighting

6
推荐指数
2
解决办法
5882
查看次数

6
推荐指数
1
解决办法
1150
查看次数

在vim中检测文件类型而没有有效的文件扩展名

我正在寻找一种方法来确定vim中文件的文件类型,并根据文件类型设置语法高亮.唯一的问题是我无法使用文件扩展名来确定文件类型.

这是我的场景:我使用vimdiffgvimdiff作为我的P4DIFF工具,它显示本地副本中的文件与perforce服务器中的文件之间的更改.Perforce似乎将perforce服务器中的文件引入/ tmp目录并使用PID命名文件,例如:

/tmp/tmp.24673.23
Run Code Online (Sandbox Code Playgroud)

这是一个C++源文件.

我在perforce存储库中遇到的最常见的文件类型是C/C++源代码和头文件,Makefile,python脚本,perl脚本,ruby脚本和tcl脚本.

  • 我已经开始使用了modeline,但是我们树中的大多数源都没有嵌入文件中的这些信息.

  • 这篇文章提到了一种搜索和识别魔术模式的可能方法.我找不到任何一致的魔术模式,我可以获得很高的成功率.

  • 尝试使用file我的linux盒子上的二进制文件来查看我得到的结果.它似乎很好地识别了C/C++源代码,但是对于Makefile甚至python脚本(没有hashbang)都失败了

一个好处是,在比较的2个文件中,右边的文件来自我的本地副本,因此具有带扩展名的正确文件名,因此右侧的文件正确启用了语法突出显示.

有没有办法可以利用它为左侧显示的文件设置相同的语法高亮显示?

对此问题的任何替代解决方案也是受欢迎的.

vim file-type syntax-highlighting vim-syntax-highlighting

6
推荐指数
1
解决办法
1461
查看次数

Vim:切换长线的突出显示

在我的.vimrc中,我有:

:au BufWinEnter * let w:m1=matchadd('Search', '\%>80v.\+', -1)
Run Code Online (Sandbox Code Playgroud)

突出显示超过80个字符限制的行.如何设置它以便通过按功能键来打开/关闭它?

vim syntax-highlighting text-editor vim-syntax-highlighting

6
推荐指数
1
解决办法
607
查看次数

我如何教vim有关语法高亮的其他C语言类型?

语法高亮工程顺顺当当美丽的标准类型,如int,uint32_t,float等等.但是,我想教vim在我的代码中使用typedef定义的其他类型,例如

typedef double float64_t;
Run Code Online (Sandbox Code Playgroud)

如何让vim使用与float64_t标准类型相同的突出显示?具有本地文件(例如,在我的~/.vimrc.vim目录中)的解决方案将是优选的.自动解析typedef名称不是必需的,我愿意根据需要添加typedef名称.

c vim types vim-syntax-highlighting

6
推荐指数
2
解决办法
1223
查看次数

如何使vim SpellCheck*不*代码识别?

默认情况下,vim拼写检查程序可识别代码,因此它不会拼写检查文件的代码部分.实际上,在markdown中,它将(pandoc multiline)表视为代码,因此不会拼写检查其内容.

有可能覆盖这个吗?或者为包括代码在内的整个文件启用拼写检查.

vim spell-checking vim-syntax-highlighting

6
推荐指数
1
解决办法
1564
查看次数

在 Vim 的插入模式下禁用高亮匹配括号

有没有办法仅在插入模式下禁用 Vim 中匹配括号的突出显示?

使用:NoMatchParen将在正常和插入模式下禁用它。

编辑: 我尝试按照评论中的建议使用 autocmd,现在我的 .vimrc 中有以下行

au InsertEnter * NoMatchParen
au InsertLeave * DoMatchParen
Run Code Online (Sandbox Code Playgroud)

但是,这样,当我分割中有两个缓冲区时,离开插入模式会更改我所在的缓冲区。有什么建议吗?

vim vim-syntax-highlighting

6
推荐指数
0
解决办法
595
查看次数