Re: [RFC/PATCH] remove vim syntax highlighting in favor of upstream

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux