如何为字符串中的 \n 和 \r 等转义序列配置 vim 语法突出显示?
How to configure vim syntax highlighting for escape sequences like \n and \r within strings?
我一直在为 Spike 模糊测试开发自定义语法荧光笔 API。
https://github.com/kkirsche/spike.vim
非常简单API,所以这是一个非常简单的文件。
因此,在字符串中,有转义序列,例如 \n 表示换行,\r 表示回车符 return,这在许多编程语言中很常见,例如 Python 、C 等。由于对它们的解释不同,我想以与这些编程语言相同的方式突出显示它们。
我的理解是这些应该是匹配定义,但老实说我不确定 — 而且我不知道根据 Vim 的不同类型(例如注释、字符串、特殊、函数等)
在 VIM 语法高亮文件中处理高亮转义序列的正确方法是什么?
查看 Vim 附带的一些语法脚本,所有似乎(大部分)都同意 link 这到 SpecialChar
默认突出显示组(它本身是 link默认为 Special
):
$VIMRUNTIME/syntax/c.vim
:
syn match cSpecial display contained "\\(x\x\+\|\o\{1,3}\|.\|$\)"
syn region cString start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\|\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
hi def link cSpecial SpecialChar
$VIMRUNTIME/syntax/java.vim
:
syn match javaSpecialChar contained "\\([4-9]\d\|[0-3]\d\d\|[\"\'ntbrf]\|u\x\{4\}\)"
hi def link javaSpecialChar SpecialChar
$VIMRUNTIME/syntax/javascript.vim
:
syn match javaScriptSpecial "\\d\d\d\|\."
syn match javaScriptSpecialCharacter "'\.'"
hi def link javaScriptSpecial Special
hi def link javaScriptSpecialCharacter javaScriptSpecial
*Special any special symbol
SpecialChar special character in a constant
Tag you can use CTRL-] on this
Delimiter character that needs attention
SpecialComment special things inside a comment
我一直在为 Spike 模糊测试开发自定义语法荧光笔 API。
https://github.com/kkirsche/spike.vim
非常简单API,所以这是一个非常简单的文件。
因此,在字符串中,有转义序列,例如 \n 表示换行,\r 表示回车符 return,这在许多编程语言中很常见,例如 Python 、C 等。由于对它们的解释不同,我想以与这些编程语言相同的方式突出显示它们。
我的理解是这些应该是匹配定义,但老实说我不确定 — 而且我不知道根据 Vim 的不同类型(例如注释、字符串、特殊、函数等)
在 VIM 语法高亮文件中处理高亮转义序列的正确方法是什么?
查看 Vim 附带的一些语法脚本,所有似乎(大部分)都同意 link 这到 SpecialChar
默认突出显示组(它本身是 link默认为 Special
):
$VIMRUNTIME/syntax/c.vim
:
syn match cSpecial display contained "\\(x\x\+\|\o\{1,3}\|.\|$\)"
syn region cString start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\|\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
hi def link cSpecial SpecialChar
$VIMRUNTIME/syntax/java.vim
:
syn match javaSpecialChar contained "\\([4-9]\d\|[0-3]\d\d\|[\"\'ntbrf]\|u\x\{4\}\)"
hi def link javaSpecialChar SpecialChar
$VIMRUNTIME/syntax/javascript.vim
:
syn match javaScriptSpecial "\\d\d\d\|\."
syn match javaScriptSpecialCharacter "'\.'"
hi def link javaScriptSpecial Special
hi def link javaScriptSpecialCharacter javaScriptSpecial
*Special any special symbol SpecialChar special character in a constant Tag you can use CTRL-] on this Delimiter character that needs attention SpecialComment special things inside a comment