I noticed recently that vim does not always set 'filetype' to "mail" 
when I edit mutt temporary files, e.g., postponed messages.  I 
traced the problem to mutt's use of mktemp() with the pattern 
"muttXXXXXX".  I don't know about other OSs, but mktemp() on SunOS 
5.8 replaces those Xs with characters from the POSIX portable 
filename character set:

    A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
    a b c d e f g h i j k l m n o p q r s t u v w x y z
    0 1 2 3 4 5 6 7 8 9 . _ -

The pattern used in filetype.vim to match file names of this form is

    mutt\w\{6\}

The "\w" character class does not include the characters '.' or '-'.  
I replaced that pattern with this one:

    mutt[[:alnum:]._-]\{6\}

I was surprised that [:alnum:] worked in the context of an 
autocommand filename pattern.  I didn't want to use "\f" because it 
included too much.

A patch is attached.  I have posted it here rather than sending it 
to Bram directly to allow others to comment in case I missed 
something.

Gary

-- 
Gary Johnson                 | Agilent Technologies
[EMAIL PROTECTED]     | Wireless Division
                             | Spokane, Washington, USA
*** filetype.vim.orig   Mon May  8 16:43:45 2006
--- filetype.vim        Tue Jul 25 13:27:55 2006
***************
*** 877,883 ****
  au BufNewFile,BufRead *.mgp                   setf mgp
  
  " Mail (for Elm, trn, mutt, rn, slrn)
! au BufNewFile,BufRead 
snd.\d\+,.letter,.letter.\d\+,.followup,.article,.article.\d\+,pico.\d\+,mutt{ng,}-*-\w\+,mutt\w\{6\},ae\d\+.txt,/tmp/SLRN[0-9A-Z.]\+,*.eml
 setf mail
  
  " Mail aliases
  au BufNewFile,BufRead /etc/mail/aliases,/etc/aliases  setf mailaliases
--- 877,883 ----
  au BufNewFile,BufRead *.mgp                   setf mgp
  
  " Mail (for Elm, trn, mutt, rn, slrn)
! au BufNewFile,BufRead 
snd.\d\+,.letter,.letter.\d\+,.followup,.article,.article.\d\+,pico.\d\+,mutt{ng,}-*-\w\+,mutt[[:alnum:]._-]\{6\},ae\d\+.txt,/tmp/SLRN[0-9A-Z.]\+,*.eml
 setf mail
  
  " Mail aliases
  au BufNewFile,BufRead /etc/mail/aliases,/etc/aliases  setf mailaliases

Reply via email to