ZSH: How to disable default completion for `make`?
zsh
Solution
You need to set your `fpath`. See here.
In your `~/.zshrc`, something like:
fpath=( ~/.zshfunctions $fpath )
where `~/.zshfunctions` contains your custom completion files, should solve this for you. Note that your functions are loaded before the system ones. This will not work:
fpath=( $fpath ~/.zshfunctions )
As an aside, you're using `compctl`. It's old. I'd recommend using `compsys` instead, although a decent link explaining why escapes me at the moment.
These go into some detail about writing completion functions, including the `fpath`. You might find them useful for reference.
- Z-shell completion functions: introduction
- Writing z-shell completion functions
Problem
I wrote my auto-completion function for `make` command, and placed it in `~/.zsh`: ``` function __comp_make { # ... function body .... } compctl -K __comp_make make ``` Unfortunately, it will not work because completion for `make` is already defined in ``` /usr/share/zsh/functions/Completion/Unix/_make ``` and apparently it takes precedence over my rule. I had to rename `_make` to `unused_make` so it is not loaded at zsh initialization. It works, but it is rather ugly solution. My question is: how should I set my completion rule so it takes precedence over the loaded defaults? Related: - How does one override an existing zsh keyboard completion? Edit: - zsh 4.3.17