_path_files
の-Fオプション形式は何ですかcompadd
?
複数のディレクトリを次に渡します_path_files
。
_path_files -W "($base_directories)" -/
しかし、私はこの特定のコマンドに対していくつかのディレクトリツリーを完成させたくありません。
私が見つけることができるドキュメントはlikeのようなオプションを_path_files
受け入れていると述べていますが、それを渡すフォーマットを見つけることができません。-F
compadd
苦労しても結果はありません。
たとえば、私は次のことを試しました。
_path_files -W "($base_directories)" -/ -F shared; # shared still shows up
_path_files -W "($base_directories)" -/ -F "(shared)"; # barfs on that guy
ベストアンサー1
shared
ディレクトリツリーのルートを無視するには、を無視する必要があります。ただし、階層のより深い場所を$base_directories
無視するには、パターンを配列に配置する必要があります。引用。shared
-F "(shared **shared)"
local -a ignored base_directories
base_directories=(…)
ignored=(shared '*/shared')
_path_files -W base_directories -/ -F ignored
_cvs
の標準分布に例があります_darcs
。
それでも役に立たない場合は、問題のあるコードを追加してset -x
解決して何が起こっているのかを調べてください。または、現在の関数が継続している間にのみオプションを変更することがあります。set +x
setopt local_options xtrace
set -x