Vim突出显示FORTRAN的奇怪部分

Vim突出显示FORTRAN的奇怪部分,vim,fortran90,Vim,Fortran90,我正在使用VIM主题molokai,如果这有什么不同的话 我最近一直在学习FORTRAN,当我使用VIM编写FORTRAN程序时,我会根据我的空白使用奇怪的颜色 例如,如果我按原样对事物进行制表(无缩进),我只在单词的一部分上有紫色高亮显示(有时它不在那里,请注意打印和阅读) 如果我在上面贴标签,它看起来很正常: 我不熟悉VIM(更不用说FORTRAN了),所以我不知道发生了什么,我不介意一直使用Tab键,但我认为如果整个程序都在浪费那一栏空白,那看起来有点可笑。当我创建一个新的.f90文件

我正在使用VIM主题molokai,如果这有什么不同的话

我最近一直在学习FORTRAN,当我使用VIM编写FORTRAN程序时,我会根据我的空白使用奇怪的颜色

例如,如果我按原样对事物进行制表(无缩进),我只在单词的一部分上有紫色高亮显示(有时它不在那里,请注意打印和阅读)

如果我在上面贴标签,它看起来很正常:


我不熟悉VIM(更不用说FORTRAN了),所以我不知道发生了什么,我不介意一直使用Tab键,但我认为如果整个程序都在浪费那一栏空白,那看起来有点可笑。

当我创建一个新的.f90文件时,VIM使用的是固定格式/punchcard。为了区分它,, 我将它复制到我的~/.vim/syntax/目录中,并将以下行添加到my.vimrc中(也在下面的链接中指定)

nmap:set syntax=fortran:let b:fortran\u fixed\u source=!b:fortran\u固定\u来源:set syntax=text:set syntax=fortran
nmap:文件类型检测

允许我将Shift-F绑定为切换格式,将Ctrl-F绑定为自动检测。

如果搜索
:help fortran
,您将获得一个可设置的选项列表。 这些是我在自己的.vimrc文件中设置的fortran选项。(虽然我不使用固定格式的代码)我知道有一两个fortran特定的脚本可以在线使用,但我不使用它们

let fortran_free_source=1
let fortran_have_tabs=1
let fortran_more_precise=1
let fortran_do_enddo=1

您可以在
~/.vim/after/indent
中安装,它应该可以修复索引错误。

您正在编辑的文件名是什么?文件名是:temp.f90Hmmm,您的屏幕截图表明vim可能认为代码是以固定格式源代码编写的,其中的语句从第7列开始。另一个广泛使用的程序员编辑器通常假定扩展名为
.f
的源文件是固定格式的,我怀疑Vim也可能是这样。更新:如果我保存并退出,在重新打开文件时,紫色突出显示消失,并且颜色正确。我想你是对的,在我重新打开文件之前,它不会检测到我正在使用modern,并且认为它正在使用固定格式/punchcard。我将进一步调查,并希望尽快发布答案。如果有帮助,我需要更好地使用“help:”命令。我现在已经解决了我的问题,我不需要用固定的东西工作,但它偶尔会出现在工作中。我的切换键对此非常有用。感谢您的回答,非常感谢:)如果其他人和我一样,我会记住这一点。我将尝试使用这个,而不是明天找到的语法文件,以便进行比较。我发现文件中添加的某些内容(与我当前的vimrc设置)有点冲突。请确保您阅读了帮助文档
fortran\u free\u source
假设所有选项卡都是自由格式,
fortran\u have\u tabs
阻止它突出显示选项卡,但我稍后设置了
expandtab
选项,它会将所有选项卡变成空格。这些文档还描述了一种将某些文件扩展名设置为免费或固定的方法。另请参见
帮助:ft-fortran indent
。只需将您的标记为答案,尽管可能没有我在答案中指定的fortran.vim文件那么“完整”。结果更清晰,因为我只需要正确的语法高亮显示和更简单的缩进(使用当前的缩进设置)。此外,我所有的fortran语言都是现代语言;我没有打开很多固定格式的文件。
let fortran_free_source=1
let fortran_have_tabs=1
let fortran_more_precise=1
let fortran_do_enddo=1