相关疑难解决方法(0)

针对多行fortran openmp指令的Vim语法高亮显示

我正在使用现代fortran进行并行编程.我正在使用vim,我真的很讨厌fortran.vim语法文件似乎不处理像!$ omp或!dir $这样的编译器指令.这些只是在vim中呈现为注释,因此它们不会脱颖而出.在c/c ++中,这些编译器指令是使用#pragma完成的,所以一切都像预处理器代码而不是注释代码一样突出.所以我想用我的fortran语法进行类似的处理.这是我想要着色的多行指令的示例:

!$omp parallel do reduction(+: sum0) reduction(+: sum1) &
     private( nn, S1, S2, Y1, Y2, rvec0, rvec1, iThreadNum)
Run Code Online (Sandbox Code Playgroud)

到目前为止我所拥有的是一个位于$ HOME/.vim/after/syntax中的新fortran.vim文件.我已经让它在一行的开头识别出'!$ omp',并为该行着色并正确地为多线条着色.我的语法文件包含:

syn region fortranDirective start=/!$omp.*/ end=/[^\&]$/
hi def link fortranDirective PreProc
Run Code Online (Sandbox Code Playgroud)

我的问题是它现在无法处理只有一行的简单情况.即:

!$omp parallel do blah blah
call foobar   <-- this is coloured the same as the line above
Run Code Online (Sandbox Code Playgroud)

我需要在语法文件中使用某种正则表达式规则才能正确匹配单行和续行.有人可以帮忙吗?

vim openmp fortran90 vim-syntax-highlighting

2
推荐指数
1
解决办法
676
查看次数

标签 统计

fortran90 ×1

openmp ×1

vim ×1

vim-syntax-highlighting ×1