| Bash quibbles | January 23rd, 2009 | 
| programming, shell, tech | 
bash.  It does a lot of things well and makes my
   life on the command line a lot more pleasant.  It generally has
   nice tab completion, but there are some ways it would work better,
   though:
   - Tab completion on paths containing environment variables
         should not expand them.  Or if it is going to expand them, it
         should not follow with a space.  If I'm doing everything
         relative to the directory $ON_Bthen I don't care that it expands to/nfs/man/this/path/is/freakin/long/on_b. With my shell PS1 hack (below) I don't have to see this depth all the time, but it could be even better.
- Tab completion should understand filename wildcards.  If I
         have 'ls $ON_B/{a,b}*/reporand presstabthen I want to have the command replaced byls $ON_B/{a,b}*/report/. The logic is a little tricky. And there's even a bit of ambiguity: if the directoryreportingappears in one (or more) of the possible expansions but not in all of them, while the directoryreportappears in all, do we ignorereporting? This affects whether we append the trailing slash in this case, and has widespread effects in other cases. I'm inclined to have it complete only with things that exist in all matches. Note that with this completion rule, to get something that exists in some of the matches, you need to edit the path being completed to rule out the things that don't have it. So while I wouldn't completereportingfromls $ON_B/{a,b}*/reporif any of the dirs didn't havereporting, I would complete it fromls $ON_B/{a,b}*/reporti.
On a completely different subject, I've started using the InvertColors Firefox addon, and it makes pages look a lot nicer.
Comment via: facebook, substack