语境
zsh
壳,oh-my-zsh
框架,- 没有特殊
zsh
的配置(有或没有同样的问题zsh-completions
):见.zshrc
最后。
麻烦
如果目录包含:
- a
makefile
的目标:hello
,hello.o
和main.o
, - 比如说,3 个文件
foo
,bar
并且baz
,
调用make
+ ↹ 显示为完成:
bar baz foo hello hello.o main.o makefile
而不仅仅是makefile
的目标。
问题
在这方面,我如何定制zsh
它的行为bash
(仅显示目标)?makefile
配置文件
这是我的.zshrc
:
export ZSH=/home/bitouze/.oh-my-zsh
ZSH_THEME="gnzh"
plugins=(git zsh-completions)
autoload -U compinit && compinit
source $ZSH/oh-my-zsh.sh
export LANG=fr_FR.UTF-8
source $HOME/.aliases
# texdoc completion
compctl -k "(($(grep ^name $(kpsewhich -var-value TEXMFROOT)/tlpkg/texlive.tlpdb | grep -v '\.' | awk '{print $2}' | tr '\n' ' ')))" texdoc
export ANDROID_HOME="/home/bitouze/Android/Sdk"
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools
export JAVA_HOME=/usr/lib/jvm/jre
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="/home/bitouze/.sdkman"
[[ -s "/home/bitouze/.sdkman/bin/sdkman-init.sh" ]] && source "/home/bitouze/.sdkman/bin/sdkman-init.sh"
答案1
您可以要求zsh
只显示targets
标签用于make
命令完成
zstyle ':completion:*:*:make:*' tag-order 'targets'
在该行后面的某处添加上面的代码
autoload -U compinit && compinit