web-dev-qa-db-ja.com

zshシェルで「make」コマンドのファイルが完了しないようにする

環境

  • zshシェル、
  • oh-my-zshフレームワーク、
  • 特別なzshの構成はありません(zsh-completionsの有無にかかわらず同じ問題):最後の.zshrcを参照してください。

トラブル

ディレクトリに次のものが含まれている場合:

  • ターゲットを持つmakefilehellohello.oおよびmain.o
  • たとえば、3つのファイルfoobarおよびbaz

make + TABを呼び出すと、完了として表示されます。

bar baz foo hello hello.o main.o makefile

makefileのターゲットだけではなく、.

質問

この点でzshbashのターゲットのみを表示)として動作するように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"
5
Denis Bitouzé

zshコマンドの完了に対してtargetstagのみを表示するようにmakeに依頼できます。

zstyle ':completion:*:*:make:*' tag-order 'targets'

これを行の後のどこかに追加します

autoload -U compinit && compinit
6
jimmij