I have noticed sometimes that tab completion is helpfully filtered in bash. I am a java programmer and often use the java and javac commands in the terminal for quick or remote tasks.

Say I have the two usual files in a directory: MyProgram.java and MyProgram.class

If I ask bash to tabcomplete from the command prefix java M, it fills straight out to java MyProgram, this is helpful. Clearly either bash is configured to only accept *.class completions for the java command (and knows to strip the file extension), or the java command is telling bash this somehow.

I would like to accomplish the same with a text editor, so I could type in nano M and have it tab complete to nano MyProgram.java rather than pausing at nano MyProgram., is it possible to say, blacklist *.class from nano's tab complete?

Most of all I'd just be interested to know if this is a bash configuration or something program-side.


Question: What is Cold Iron actually?
Answer: Based on the events of Summer Knight cold iron is, in fact, just iron.  Dresden


   kills Aurora with hundreds of pixies wielding common hobby knives with plastic casings.  The book specifically mentions how the cold iron of the knife blades makes the relatively minor cuts deadly to the Summer Lady.


Referencing your quote, how much steel do you have on you right now?  Sure, some people still carry a Leatherman or a pocket knife but most don't in the US these days.  However, how easy is it to get one?  In Summer Knight Dresden specifically mentions needing to


   stop at Walmart prior to the climatic battle but not what he needs,


which is saved for the big reveal at the Stone Table.