我正在尝试编辑python.vim语法文件,以复制Textmate中python的语法高亮显示.附图说明了我正在努力实现的功能参数的突出显示.

self,a,b在Textmate中突出显示,但在Vim中不突出显示.我想我必须做以下事情.
匹配新区域
syn region pythonFunction start="(" end=")" contains=pythonParameters skipwhite transparent
Run Code Online (Sandbox Code Playgroud)尝试匹配字符串后跟逗号
syn match pythonParameters ".*" contained
Run Code Online (Sandbox Code Playgroud)所以在第2点,".*"将匹配任何字符串,并且必须进一步扩展为正确.但是我不确定我是否在正确的路径上,因为2中的匹配不限于括号()之间的区域.任何提示或输入将不胜感激.
编辑1:如果有人想知道最终结果如何.
这是我为python突出显示的vim语法.

编辑2:因此,为了最终彻底,我为它创建了一个github页面.
我不能让我的道场工作.我已经尝试了一切.
这是代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.4/dojo/dojo.xd.js">
dojo.addOnLoad(function(){
console.log("page ready, can modify DOM anytime after this");
});
</script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 在代码片段中,一旦尝试为其分配值,我就预料到了分段错误count[1].然而,代码继续并执行第二个for循环,仅在程序终止时指示分段错误.
#include <stdio.h>
int main()
{
int count[1];
int i;
for(i = 0; i < 100; i++)
{
count[i] = i;
}
for(i = 0; i < 100; i++)
{
printf("%d\n", count[i]);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释发生了什么吗?
编辑的原因:
根据用户的评论改进了示例代码
int count[0] -> int count[1],也避免了火焰战争.
所以我一直在用 C 编写一些应用程序并使用 OpenMP 进行并行化。我实现了 Monte-Carlo Pi 估计,发现正常的 rand() 函数不是可重入和线程安全的。建议使用 drand48_r 选项。
现在问题来了,我的应用程序在 Linux 上编译得很好,例如。Ubuntu、Fedora 和 CentOS 但不能在 Mac OS X 上编译。 OS X 上的编译错误是。
simple.c:7: 错误:“randBuffer”的存储大小未知
用作简单示例的代码是:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[]) {
double x;
struct drand48_data randBuffer;
srand48_r(time(NULL), &randBuffer);
drand48_r(&randBuffer, &x);
printf("Random number: %f\n", x);
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)
我阅读了它,并在手册页中找到了一条说明,
这些函数是 GNU 扩展,不可移植。
这是它的链接:http : //www.kernel.org/doc/man-pages/online/pages/man3/drand48_r.3.html
所以我有很多问题;
嗯,就是这样。
该示例使用 gcc 编译为,
gcc simple.c -o simple