For months, I have been getting driven up the wall by some stupid Vim behavior. When run on Linux, filename completion is case sensitive. When run on Mac OS, it is not. This is despite the fact that I'm running it on a case-sensitive filesystem.
I never cared much until CPANTS started wanting all dists to have a human-readable license file. (Apparently, a link to perlartistic
was not enough -- but that's another rant.) Now all my dists had LICENSE
and lib
and when working on my laptop, where I do most of my work, I couldn't hit :e l<tab>
and complete lib
. I'd get the wildmenu for the two options.
I asked around, poured through help files, and found nothing. Finally, someone on the mailing list said that it was a compile-time option, but that they didn't see any reason OS X was using it. I think they didn't have the right file in their build tree, because when I checked out the source, I found it.
This patch has made my life better already:
Index: src/os_mac.h =================================================================== --- src/os_mac.h (revision 242) +++ src/os_mac.h (working copy) @@ -83,7 +83,6 @@ #define FEAT_SOURCE_FF_MAC #define USE_EXE_NAME /* to find $VIM */ -#define CASE_INSENSITIVE_FILENAME /* ignore case when comparing file names */ #define SPACE_IN_FILENAME #define BREAKCHECK_SKIP 32 /* call mch_breakcheck() each time, it's
Re:Huh.
rjbs on 2007-04-10T19:38:14
I don't think there is any compelling reason I can think of for users to want case-sens filesystem everywhere. My complaint, and others like it, aren't good arguments, since I might someday have "t" and "test.pl" -- or whatever. Then again, you'd want to store filenames in a canonical case for easy bytewise comparison, and then have case preserved for display, which is just sure to be a PITA, so I think it's a tolerable compromise between users and coders.
After all, my problem is really one of "my program isn't interacting with the fs nicely," not "my filesystem should be case send but isn't."