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>