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