In practice, the only use for
ignorecase
is to make vims regular expressions case insensitive when searching. However, for some reason, it also affects the ==
operator. Check this shit out:
:set noignorecase
:echo "foo" == "FOO"
0
:set ignorecase
:echo "foo" == "FOO"
1
What the fuck!? Good job team, you just made
==
ambiguous, and therefore completely useless.This means script writers can't use
==
unless they explicity set the ignorecase
option first, otherwise they don't know how their code will behave. Since that would be retarded, we should all stop using ==
and start using ==#
or ==?
, which is exactly what I've done.But wait! Theres more!
ignorecase
also changes the behaviour of these comparison operators too:!=
>
>=
<
<=
=~
!~
Who the fuck made this decision?! I have no idea, but Id like 5 minutes alone with that bitch so I could stab them in the face! Multiple times! WITH MY FUCKING RECTUM.
Just ask yourself: if you download someones vim script, is it really in your best interests to change how every single comparison operator in that script functions?
In my massively non-humble opinion,
ignorecase
should not affect any of the basic comparison operators, only specializations of those operators.</rage>