Zsh
防止在 zsh shell 中完成“make”命令的文件
語境
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"
您可以要求
zsh
僅顯示命令完成的targets
標籤make
zstyle ':completion:*:*:make:*' tag-order 'targets'
在該行之後的某處添加上面的程式碼
autoload -U compinit && compinit