I have no idea how tab completion works, but all of a sudden mine is broken. I don't even know what info to provide other than the use case.
there is a target clean
in the makefile.
$ make c<tab>
results in
$ make c23:set: command not found
lean
EDIT:
I believe somehow I ruined the set
bash built-in since man set
says No manual entry for set
and which set
doesn't report anything. Invoking set on the terminal, however, produces result.
I'm using: GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu) and GNU Make 3.81
thanks to Etan's comment and Aaron's indication of where makefiles are, I managed to debug this.
I ran
set -x
so I could track what was happening when doing the tab completion. The output ofmake c<tab>
consists mostly of commands from the bash completion file formake
, located at/usr/share/bash-completion/completions/make
(1). However, I noticed the an inconsistency between the output and the file. Towards the end, the output said:Which I identified as corresponding to these lines from the file:
So the output did a
grep --colour=auto -n
instead of justgrep
. Indeed, I had setup this alias forgrep
Make worked as soon as I removed the alias.
I hope this helps others debug their problems.
EDIT: I have submitted a bug report here: https://alioth.debian.org/tracker/index.php?func=detail&aid=315108&group_id=100114&atid=413095