この質問は以下に関連しています。これしかし、解決策を理解できません。私も知っていますこのチュートリアルしかし、まだ私が何を間違っているのか理解できません。
次の場所にあるディレクトリのリストをオートコンプリートしようとしています/something/
。
$ ls /something/
One Other Three
どういうわけかこのようなことが起こります:
$ hi [TAB]
One Other Three
$ hi O[TAB]
One Other
最初の単語がhi
only insideの場合にのみ適用されます/something/
。
これが私がすることです.profile
:
_codeComplete()
{
local cur=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=( $(compgen `ls /something/` -- $cur) )
}
complete -F _codeComplete "hi "
ベストアンサー1
努力する:
_codeComplete()
{
local cur=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=( $(compgen -W "$(ls /something/)" -- $cur) )
}
complete -F _codeComplete hi
-W
オプションを指定compgen
し、単語リストを生成したコマンドを引用する必要があります。
完成関数の作成方法の詳細については、次のブログをご覧ください。独自のBash完成関数を書く