Vim文件类型检测

时间:2012-06-08 19:50:12

标签: vim

Vim能否检测到包含内容的缓冲区的文件类型,但是还没有名称(尚未保存)? :filetype detect做得不多。

4 个答案:

答案 0 :(得分:4)

大多数文件类型都是通过文件名(和/或位置)检测到的,有些(通常是#! shebang行的文件名)按其内容检测。

如果您还不想保存缓冲区但有检测,则可以通过:file name.ext命名缓冲区。然后,通过:filetype detect的检测将起作用。

如果您只想快速进行语法突出显示(以及相应的文件类型设置),只需通过:setf name手动设置文件类型。

答案 1 :(得分:1)

您可以手动执行此操作。

:set filetype=EXT

请注意,EXT是您想要的文件类型的扩展名,不一定是语言本身的名称。

答案 2 :(得分:0)

正如vim的帮助所说,它在某些情况下有效,例如,如果您键入

#!/bin/sh

然后它将检测为sh脚本。

答案 3 :(得分:0)

如果文件在第一行包含#!,则很容易。

例如:

" 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