坦率地说,raw string literals是C++语言的一个很好的补充。但是(正如所料)编辑们很难正确显示这些文字。如何从Vim中的语法高亮显示中排除C++原始字符串文字?
我使用的Vim 7.4和出的现成的原始字符串字面彻底打破语法高亮。例如,在
char const txt[] = R"(printf(")";
二号“(”在VIM高亮红
喜欢的东西
char const txt2[] = R"( "{{" )";
休息的大括号的高亮和基于语法自动IDENT - 等等
首先,我会很高兴让Vim在执行语法高亮时忽略R"(
和)"
之间的所有内容
但是请注意,原始字符串字面量是灵活 - 任意字符串匹配的第一个/最后一个双引号/一对括号之间不允许,例如
R"abcd()")")abcd"
也是一个有效的原始字符串文字编码
)")"
又见cppreference链路的语法的一般定义。
因此,我的问题是如何配置的Vim,使得C++的原始字符串字面被正确识别。
的Vim似乎已经包括一些设施,以适当嵌入宿主语言(如编译器编译源文件)synatx亮点的语言片段。也许他们也可以用于原始字符串文字的情况呢?
很好用,他们使用'syn region'语法突出显示命令来识别原始字符串文字 - 这样多行原始字符串文字也被高亮显示纠正。将git仓库直接克隆到[病原体](https://github.com/tpope/vim-pathogen)捆绑目录也可以。 – maxschlepzig