Vim 可以检测包含内容但还没有名称(尚未保存)的缓冲区的文件类型吗?:filetype detect
没有多大作用。
问问题
2842 次
4 回答
6
大多数文件类型是通过它们的文件名(和/或位置)来检测的,有些(主要是那些带有#!
shebang 行的)是通过它们的内容来检测的。
如果您还不想保存缓冲区,但有检测,您可以通过:file name.ext
. 然后,检测通孔:filetype detect
将起作用。
如果您只想快速突出显示语法(和相应的文件类型设置),只需通过:setf name
.
于 2012-06-08T20:10:32.303 回答
1
您可以手动执行此操作。
:set filetype=EXT
请注意,EXT 是您想要的文件类型的扩展名,不一定是语言本身的名称。
于 2012-06-10T06:53:18.040 回答
0
正如帮助vim
所说,它在某些情况下有效,例如,如果您键入
#!/bin/sh
然后它将检测为sh
脚本。
于 2012-06-08T19:54:21.627 回答
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
于 2012-06-08T19:57:05.887 回答