On Thu, Sep 25, 2008 at 7:48 AM, SZEDER Gábor <szeder@xxxxxxxxxx> wrote: > Hi, > > OK, so I'm complaining a bit. > > On Wed, Sep 24, 2008 at 09:56:58PM +0200, SZEDER Gábor wrote: >> +To install: >> + >> + 1. Copy these files to vim's syntax directory $HOME/.vim/syntax >> + 2. Auto-detect the editing of various git-related filetypes: >> + $ cat >>$HOME/.vimrc <<'EOF' >> + autocmd BufNewFile,BufRead *.git/COMMIT_EDITMSG setf gitcommit >> + autocmd BufNewFile,BufRead *.git/config,.gitconfig setf gitconfig >> + autocmd BufNewFile,BufRead git-rebase-todo setf gitrebase >> + autocmd BufNewFile,BufRead .msg.[0-9]* >> + \ if getline(1) =~ '^From.*# This line is ignored.$' | >> + \ setf gitsendemail | >> + \ endif >> + autocmd BufNewFile,BufRead *.git/** >> + \ if getline(1) =~ '^\x\{40\}\>\|^ref: ' | >> + \ setf git | >> + \ endif >> + EOF > > There are issues with this second step. If I append this code to my > .vimrc, then vim sometimes overrides the filetype with conf. > > vim has a guessing rule for detecting conf files, which triggers if > one of the first five lines of the file begins with a '#'. So if I > start to write a new commit message or I interactively rebase 4 or > less commits, then this rule triggers and vim overrides the git > filetype with filetype conf. If I do a commit --amend with a long > enough original commit message or an interactive rebase with more than > 4 commit, then this rule no more triggers and everything is fine. > > But what's really puzzling is that if I insert the above code into > $VIMRUNTIME/filetype.vim (at the spot where it can be found in vim > 7.2's filetype.vim), then everything works as expected, git filetypes > are never overridden. > > This is not related to the changes in this patch. git's original vim > syntax highlight for commit messages has the exact same behaviour. > > The first step is OK: it doesn't matter whether I put git-related > syntax files under $HOME/.vim/syntax/ or under $VIMRUNTIME/syntax/. I'd guess that your autocommands defined in .vimrc take effect after the default file type settings. When you use ':setf', it intentionally will not override the existing file type if one has already been detected. Use ':help new-filetype' to see the various ways you can interact with and/or override the default filetype detection. bob -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html