zsh make完了:Makefileの目標のみを完了します。

zsh make完了:Makefileの目標のみを完了します。

Makefileが含まれているディレクトリにある場合は、makeにzsh補完を使用します。

make <TAB>

2つの仕上げセットを実行します。

  1. Makefileのターゲット
  2. 現在のディレクトリのファイル

私は1)

2)を無効にする方法は?

_make完成したファイルをここに貼り付けました。https://ctxt.io/2/AADge23ZFg

ベストアンサー1

完了ステータスはから取得されます_alternative 'targets:…' 'variables:…' '*:…'

これ_alternativeこの関数は、次の中から選択肢をリストします。商標。タグの順序と選択は次のとおりです。設定そしてtag-orderスタイル。スタイルの文脈は次のとおりです:completion::complete:make::。ドキュメントでこの問題を解決できます(含まれています)。zstyle、または^X?_complete_debug)。

私が理解したのは、ターゲットと変数名だけを完成させ、ファイル名を完成させたくない場合は、次のようにタグの順序を設定できます。

zstyle ':completion::complete:make::' tag-order 'targets variables' -

しかし、実験を通して、これはまったく完成度を提供せず、その理由を理解していません。

しかし、実際に機能し、おそらくより便利なのは、ターゲット名と変数名の優先順位を付けるようにラベルの順序を設定することです。次に、一致するターゲット名または変数名がない場合にのみファイル名を完成させてください。make stuffTab

zstyle ':completion::complete:make::' tag-order 'targets variables'

または、一致するターゲットがない場合は変数を無視し、ターゲットまたは変数が一致しない場合はファイルを無視します。

zstyle ':completion::complete:make::' tag-order targets variables

make(ああ、そして完璧にするために完全に無効にされたパラメータを使用してすべてのファイル補完を使用することができます。しかし、これは残念ながら他のコンテキスト文字列がないzstyle ':completion::complete:make::' file-patterns ''などの項目に対する補完も無効にします。)make -f

おすすめ記事