Vim可以检测内容的缓冲区的文件类型,但是这个缓冲区还没有命名(未保存)吗?
:filetype detect
功能不太好。#!
shebang行的文件)是通过它们的内容来检测的。:file name.ext
命名缓冲区。然后,使用:filetype detect
命令进行检测。:setf name
命令。您可以手动完成此操作。
:set filetype=EXT
正如vim
的帮助文档所说,它在某些情况下可以工作,例如如果您键入
#!/bin/sh
然后它将被检测为sh
脚本。
#!
,那么很容易处理。" finish if the filetype was detected
if did_filetype()
finish
endif
" Ruby & Python ftplugins
if getline(1) =~ '^#!.*ruby'
setfiletype ruby
elseif getline(1) =~ '^#!.*python'
setfiletype python
endif
:help ft-fortran-syntax
。如果这仍然不适合你,你就需要编写/扩展检测,参见:help new-filetype-scripts
。 - Ingo Karkat