On 23/02/14 09:15, Nick Dev wrote:
> I have a function that strips trailing whitespace on save. In my .vimrc I have the line
>
>     autocmd BufWritePre * if &ft =~ 'sh\|perl\|python\....' | :call <SID>StripTrailingWhitespaces() | endif
>
> What I would like is to negate that into matching everything but "condition".
>
> This works OK for known filetypes:
>
>      autocmd BufWritePre * if &ft !=# 'text' | :call <SID>StripTrailingWhitespaces() | endif
>
> but I also want to match when filetype is not set. I have tried various with no luck.
When 'filetype' is not set it is set to the empty string, so !=# 'text' 
should match "everything other than 'text', even the empty string" and also
	if &ft == "" || &ft =~# 'sh$\|^perl\|^python'
where =~# means "match pattern and don't ignore case", remember, so this 
would match anything ending in "sh", anything beginning in "perl" or 
"python", or the empty string (which is special-cased before the || ). 
You could alternatively represent the empty string inside the pattern by 
^$ (i.e. start immediately followed by end) as follows:
	if &ft =~# '^$\|sh$\|^perl\|^python'
Of course, it is important to use single quotes here, not double quotes, 
to avoid making the backslashes "special" when evaluating the quoted 
string — they are part of the pattern on the RHS of the =~# operator.
>
> I was also advised to use:
>
>     autocmd FileType * if <amatch> !=# 'text' | ...
>
>
> but can't see how that is correct, nor can I get it to work.
>
see above
Best regards,
Tony.
-- 
There was a young man of Ostend
Who let a girl play with his end.
	She took hold of Rover,
	And felt it all over,
And it did what she didn't intend.
-- 
-- 
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
--- 
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Sunday, February 23, 2014
Subscribe to:
Post Comments (Atom)
 
No comments:
Post a Comment