Monday, July 16, 2012

Re-post [2nd time]: file type detection : "complete" order

On 7/3/2012 10:43 AM, ping wrote:
> guys/experts:
> sorry If I'm asking an idiot question...
> I'm learning about auto detection of file type and apply my own syntax
> highlight+folding based on it.
> so overall we have following machnism:
>
> 1) ex: set ft=
> 2) modeline: vim:ft= ..
> 3) $VIMRUNTIME/filetype.vim
> 4) ~/.vim/ftdetect/xxx_filetype.vim
> 5) ....
>
> what's the complete logic/detect order in place here?
>
> help ftdetect does give me a lot of good info, but I'm not sure in what
> sequence vim applies them?
>
> thanks
>
> regards
> ping

after read more...
now to answer my own questions now, please correct me if I'm wrong or
missing anything...

:help filetype tells:
---------------------------------------
turn file type detection on [:filetype on] =>
locate and load filetype.vim =>
it contains: autocommands for the BufNewFile and BufRead events
fail? =>
locate and load scripts.vim , and detect from the contents

turn plugin option on [:filetype plugin on] =>

locate and load ftplugin.vim
load ftplugin/ and all its files


:help runtimepath
---------------------------------------
tells in what sequence the above files/folders should be searched and
loaded. ALL (not the first found) found files/folders will be loaded.

another email from the vim_use group (Gary)
--------------------------------------
so anything you set in ~/.vim/ftplugin/python/python.vim may be
overwritten in /usr/local/share/vim/vim73/ftplugin/python.vim. You
can add code to your plugin to prevent the contents of Vim's plugin
from being executed, but that isn't what you want to do here.
Instead, you should put your option setting in
~/.vim/after/ftpluin/python.vim or
~/.vim/after/ftplugin/python/python.vim so that yours is set after Vim's.

--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

No comments:

Post a Comment