On 31/12/08 07:48, Matt Wozniski wrote:
> On Tue, Dec 30, 2008 at 1:14 PM, Daniel Schierbeck wrote:
>> I have added several directories to my runtimepath, each corresponding
>> to a git repository. For example, I have a directory ~/Projects/vim-
>> rack that contains ftdetect/rack.vim and syntax/rack.vim. I'm able to
>> manually :set filetype=rack (i.e. the syntax/rack.vim file is picked
>> up), but the ftdetect file does not work. It works fine if I create a
>> symlink at ~/.vim/ftdetect/rack.vim.
>>
>> It seems there's a bug in the way ftdetect files are sourced. This
>> feeling is amplified by the fact that I can insert syntax errors into
>> ~/Projects/vim-rack/ftdetect/rack.vim without Vim complaining on
>> startup.
>>
>>
>> I hope there's a simple workaround.
>
> Sorry I couldn't come up with the solution earlier on IRC, but after
> some sleep, I think I see what's going wrong here.  10 to 1 says
> you're using a 'nix distro that installs a default system-wide vimrc,
> and that system-wide vimrc does 'filetype on', meaning that
> $VIMRUNTIME/filetype.vim gets loaded before your ~/.vimrc ever adds
> your runtimepaths onto the default runtimepath, and only the ftdetect
> directories in the default runtimepath are used.  I'm not really sure
> what to do about that, though.  You could remove the system-wide vimrc
> entirely, and move anything done in it to your ~/.vimrc after your
> change to runtimepath... but this seems ugly as it affects other
> users.  You could alias vim="vim --cmd 'set rtp^=yourdir'" in your
> shell rc, but that also seems horrifically ugly.  You could redo the
> "runtime! ftdetect/*.vim", but that would make any autocmds from
> *other* directories in the runtimepath be re-added...  I think the
> nicest thing to do would be to save the existing value of the
> 'runtimepath' option, overwrite it with *just* the directories you
> want added, do the "runtime! ftdetect/*.vim", reset 'runtimepath' back
> to its old value, and then add the new paths to that option in the
> right spots... but that seems like a whole lot of work for this.
> Anyone see any better solutions?  It's a shame there are no autocmds
> for an option being set...
>
> ~Matt

You could use
        :filetype off
        :filetype on
after changing your 'runtimepath', which would first unset the 
filetype-detection autocommands, and then re-source filetype.vim to set 
them again with the new 'runtimepath' (invoking your ftdetect/*.vim 
scripts). See ":help :filetype-overview". Or if the reason is that you 
change 'runtimepath' after invoking ":filetype plugin indent on" or 
after sourcing vimrc_example.vim, do it before.

The location of a possible system-wide vimrc is shown near the middle of 
the output of the ":version" command.

If you compile your own Vim with the vim-default settings, it will look 
for a system vimrc at /usr/local/share/vim/vimrc, which is almost 
certainly different of the location (typically /etc/vimrc) used by a Vim 
version distributed together with a Linux distro. See my compiling HowTo 
for Unix/Linux at http://users.skynet.be/antoine.mechelynck/vim/compunix.htm


Best regards,
Tony.
-- 
If A equals success, then the formula is A = X + Y + Z.  X is work.  Y
is play.  Z is keep your mouth shut.
                -- Albert Einstein

--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Raspunde prin e-mail lui