Ultimately, I just decided to ignorecase . I have this in my vimrc:
autocmd BufEnter * setlocal noignorecase autocmd BufEnter *.{dsl-a,dsl-b*} setlocal ignorecase
Annoying, but resolved; I was hoping Vim would notice the header in the tag file:
!_TAG_FILE_SORTED 2 /0=unsorted, 1=sorted, 2=foldcase/
Alas, it seems that this is not so.
The other day, I ran into a problem that contains additional documentation for the masses; some of the tags I was looking for were not found, but when I looked in the tag file, they were there. Then I noticed that over the element that was skipped there were lines that had the same leading characters, but then underlined; I realized that the underscore was sorted down to letters and wondered if this could be a problem (the underscore is one of six characters that appear between the capturing Z and lowercase A, but the only ones that are valid in a C-compatible identifier).
To giggle, I manually applied the insult section so that underscores appear after the letters. I even processed a minimal test case and wrote a large error report for @vim errors, and then decided to look in the tag documentation to โprovide the appropriate linkโ. There he was buried closer to the end :help tagbsearch , that is, it is of little use to those of us who chronically hold on.
Please note that this case must be uppercase in order for this to work.
One line changes my Python script my tag file:
if casefold: tags.sort(key=str.upper) # tag file requires case folding to be folded to upper case else: tags.sort()
source share