我正在尝试在我的.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" 命令,链接就会被删除。
所以,我这样做的方式无论如何都行不通,有没有办法实现这一目标?
我希望非ascii字符显示在这里讨论,但是当非ascii字符在注释中时,语法高亮消失.稍微调查一下这个问题,我在vim-manual上发现,先前启动的项目具有更高的优先级(第3项).来自help :syn-priority:
当多个语法项可能匹配时,将使用以下规则:
当多个匹配或区域项目在同一位置开始时,最后定义的项目具有优先级.
关键字优先于匹配和区域项.
- 从较早位置开始的项目优先于在以后位置开始的项目.
我目前正在使用这个:
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继续没有突出显示).我错过了什么?
出于某种原因,似乎带有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) 如何突出以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中文件的文件类型,并根据文件类型设置语法高亮.唯一的问题是我无法使用文件扩展名来确定文件类型.
这是我的场景:我使用vimdiff或gvimdiff作为我的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个文件中,右边的文件来自我的本地副本,因此具有带扩展名的正确文件名,因此右侧的文件正确启用了语法突出显示.
有没有办法可以利用它为左侧显示的文件设置相同的语法高亮显示?
对此问题的任何替代解决方案也是受欢迎的.
在我的.vimrc中,我有:
:au BufWinEnter * let w:m1=matchadd('Search', '\%>80v.\+', -1)
Run Code Online (Sandbox Code Playgroud)
突出显示超过80个字符限制的行.如何设置它以便通过按功能键来打开/关闭它?
语法高亮工程顺顺当当美丽的标准类型,如int,uint32_t,float等等.但是,我想教vim在我的代码中使用typedef定义的其他类型,例如
typedef double float64_t;
Run Code Online (Sandbox Code Playgroud)
如何让vim使用与float64_t标准类型相同的突出显示?具有本地文件(例如,在我的~/.vimrc或.vim目录中)的解决方案将是优选的.自动解析typedef名称不是必需的,我愿意根据需要添加typedef名称.
默认情况下,vim拼写检查程序可识别代码,因此它不会拼写检查文件的代码部分.实际上,在markdown中,它将(pandoc multiline)表视为代码,因此不会拼写检查其内容.
有可能覆盖这个吗?或者为包括代码在内的整个文件启用拼写检查.
有没有办法仅在插入模式下禁用 Vim 中匹配括号的突出显示?
使用:NoMatchParen将在正常和插入模式下禁用它。
编辑: 我尝试按照评论中的建议使用 autocmd,现在我的 .vimrc 中有以下行
au InsertEnter * NoMatchParen
au InsertLeave * DoMatchParen
Run Code Online (Sandbox Code Playgroud)
但是,这样,当我分割中有两个缓冲区时,离开插入模式会更改我所在的缓冲区。有什么建议吗?