我打开了vim
而没有加载任何内容:
vim -V -u NONE
输入一行:
<?xml?>
跑完后:
:unlet did_load_filetypes
:filetype on
我检查当前缓冲区的文件类型:
:set ft?
打印filetype=
如果我输入
:unlet did_load_filetypes
:filetype detect
然后:set ft?
将打印filetype=xml
。
在vim doc中:
Detail: The ":filetype on" command will load one of these files:
Amiga $VIMRUNTIME/filetype.vim
Mac $VIMRUNTIME:filetype.vim
MS-DOS $VIMRUNTIME\filetype.vim
RiscOS Vim:Filetype
Unix $VIMRUNTIME/filetype.vim
VMS $VIMRUNTIME/filetype.vim
This file is a Vim script that defines autocommands for the
BufNewFile and BufRead events. If the file type is not found by the
name, the file $VIMRUNTIME/scripts.vim is used to detect it from the
contents of the file.
:filetype on
和:filetype detect
之间的区别是什么?
谢谢你的帮助。
答案 0 :(得分:3)
从手册:
To detect the file type again:
:filetype detect
Use this if you started with an empty file and typed text that makes it
possible to detect the file type.
答案 1 :(得分:0)
$VIMRUNTIME/filetype.vim
仅定义BufNewFile
和BufRead
事件的自动命令。
运行:filetype on
命令后,没有任何事件被触发,因此没有任何事件发生。要触发事件,您可以使用:w filename
保存该事件,并使用:e!
重新打开
我猜,:filetype detect
会运行一些代码来触发BufNewFile
或BufRead
事件。