标签: vim-syntax-highlighting

我如何教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
查看次数

用于Thor的VIM中类似Ruby的语法突出显示

如何配置vim使用与Thor相同的语法高亮显示为ruby?当我正在编辑*.thor文件时,我可以使用:set syntax=ruby,它可以使用,但不是永久性的.有没有办法在我的.vimrc文件中做一些事情来有条件地将语法设置为ruby,如果它是*.thor?也许创建一个thor语法文件并继承ruby?

ruby vim syntax-highlighting thor vim-syntax-highlighting

5
推荐指数
1
解决办法
1294
查看次数

设置expandtab时突出显示vim中的选项卡

是否有配方使用给定颜色制作vim高亮显示标签字符,但在设置expandtab选项时?我知道'listchars',但我希望能够将"有效标签"与"无效标签"区分开来.

vim indentation vim-syntax-highlighting

5
推荐指数
1
解决办法
773
查看次数

在VIM中,有没有办法为模板尖括号定义syn区域而不会与小于符号冲突?

至于{,}[,](,)我真的希望能够定义syntax region<,>将用于C++模板使用类似如下:

a<b>

但是,有没有办法创建这样的语法区域,而不会与以下内容发生冲突:

if( a < b<c>::d )

第一个<显然是"小于"运算符,应该作为模板参数的区域的开头被丢弃.

我试图使用几个选项,但无法使其工作.尝试使用复杂的正则表达式识别模板args区域而不是一个小于操作似乎真的不可能,它只能通过使用嵌套的自引用模式检查平衡对来工作.

vim vim-syntax-highlighting

5
推荐指数
1
解决办法
771
查看次数

关闭在vim中突出显示某个模式

在vim中,我正在编辑文件类型为"markdown"的文件,但其中包含乳胶数学表达式,如$ x_i $.对于markdown,Vim的语法突出显示模式*_*(字母 - 下划线字母)是一个错误,并突出显示这些模式中的下划线为鲜红色.我想通过在我的.vimrc中添加一行来关闭它:

autocmd BufEnter *.Rmd "Dear vim, please don't highlight the pattern *_*"
Run Code Online (Sandbox Code Playgroud)

这样做的适当命令是什么?是否可以在.vimrc中执行此操作,而无需编辑语法文件?

注意:我想保持降价语法一般突出显示,只关闭该特定功能.

vim vim-syntax-highlighting

5
推荐指数
2
解决办法
3094
查看次数

VIM:超时后如何关闭搜索突出显示(X秒)

我一直都知道:nohl并使用它,我也使用简单的动作,所以当移动到搜索位置时,突出显示不会影响我.按n或后它会挡住我的路N.

我正在寻找一种在3 seconds按下之后禁用搜索突出显示的方法,n或者N为了完整起见我想要一种方法也可以在搜索之后禁用它/search_word<CR>.

最后,它必须是一个非阻塞命令.

谢谢,我正在慢慢进入vimscript,但是这个已经超出了我的联盟,因为我还没有看到很多带有超时的命令示例.

编辑:

在一些评论和在线研究之后,有很多迹象表明使用vimscript做到这一点并不是一个好方法.

我正在寻找一种方法,以任何语言稳定地执行此操作,例如Perl,Python,Ruby.

编辑2:

这是我的解决方案,基于@ dhruva-sagar的回答:(我将他的答案标记为正确,因为他给了我骨架).

augroup NoHLSearch
  au!
  autocmd CursorHold,CursorMoved * call <SID>NoHLAfter(4)
augroup END

function! s:NoHLAfter(n)
  if !exists('g:nohl_starttime')
    let g:nohl_starttime = localtime()
  else
    if v:hlsearch && (localtime() - g:nohl_starttime) >= a:n
      :nohlsearch
      redraw
      unlet g:nohl_starttime
    endif
  endif
endfunction
Run Code Online (Sandbox Code Playgroud)

vim vim-syntax-highlighting

5
推荐指数
2
解决办法
1126
查看次数

vim语法:仅在其他匹配之间匹配

我正在尝试为我的日志文件创建语法文件.他们采取以下格式:

[time] LEVEL filepath:line - message
Run Code Online (Sandbox Code Playgroud)

我的语法文件如下所示:

:syn region logTime start=+^\[+ end=+\] +me=e-1
:syn keyword logCritical CRITICAL skipwhite nextgroup=logFile
:syn keyword logError ERROR skipwhite nextgroup=logFile
:syn keyword logWarn WARN skipwhite nextgroup=logFile
:syn keyword logInfo INFO skipwhite nextgroup=logFile
:syn keyword logDebug DEBUG skipwhite nextgroup=logFile
:syn match logFile " \S\+:" contained nextgroup=logLineNumber
:syn match logLineNumber "\d\+" contained
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果字符串ERRORDEBUG什么的消息中出现,它就会被突出显示.但我不想要它.我想要它,以便关键字只有在它们之后立即落在文件路径之前才会突出显示.

这是怎么做到的?

vim vim-syntax-highlighting

5
推荐指数
1
解决办法
555
查看次数

默认情况下,将语法高亮显示添加到VIM或GVIM的某些文件扩展名

在我的Linux机器中,带有.sv扩展名的文件默认情况下使用verilog语法突出显示方案打开,但是扩展名带有.v.vs不带有。:set syntax=verilog每次打开这些文件之一时,我都必须在gvim中手动进行。

默认情况下,如何使这些文件扩展名.v.vs以verilog语法突出显示?

谢谢

vim vim-plugin vim-syntax-highlighting

5
推荐指数
1
解决办法
5462
查看次数