How Bash Completion Works
I always disable shell completion after it burned me a few times:<p>1. Completion that blocks the shell, by doing a lookup across a network (e.g. to complete a remote path).  Can hang for several seconds.<p>2. Completion that gives me a misleading/incorrect view of the filesystem, by "intelligently" filtering which files/filetypes it will let me complete.  For example, if I have foo.mp3 and foo.txt, and a media-player command tab-completes and only "sees" the mp3, but I actually wanted to know that the .txt was there as well (and in some cases, open it with the media player!)<p>3. When the completion has a wrong view of the options provided by a program (e.g. completion is not aware of some useful options).  Instead of looking at the man-page, I've been tricked by a bad completion-set.<p>I would <i>love</i> a better shell with good completion, but I need to avoid these types of problems.  Does anyone else run into this?