一部のgit
コマンドには多くのオプションがあり、必要なものを検索すると便利なことがよくあります。私は、 TABgit-gui
の幅ですが、git config
には約200の補完があります。明らかな回避策は、すべての補完をエディターにコピーして検索することですが、私はむしろそうします
[something] | grep tab
man
のinfo
またはcompgen
ページはなく、help compgen
は独自のオプションについても説明しておらず、compgen
(皮肉なことにどうですか?).
PS: compgen -A
は機能しません。
PPS:これはgit-gui
についての質問ではありません-- タブ幅の質問の解決策 は他の場所にありました。
PPPS:これはnotコマンドのオートコンプリートについてであり、コマンドパラメータのみです。
次の関数を使用できます。これらの関数は、Sudo
オートコンプリートが完了リストを生成するのと同じ方法を使用します。
comp() {
local COMP_LINE="$*"
local COMP_WORDS=("$@")
local COMP_CWORD=${#COMP_WORDS[@]}
((COMP_CWORD--))
local COMP_POINT=${#COMP_LINE}
local COMP_WORDBREAKS='"'"'><=;|&(:"
# Don't really thing any real autocompletion script will rely on
# the following 2 vars, but on principle they could ~~~ LOL.
local COMP_TYPE=9
local COMP_KEY=9
_command_offset 0
echo ${COMPREPLY[@]}
}
comp git config ''
どこ _command_offset
はbash-completion(パッケージ)で定義されています。
注:関数はインタラクティブシェルで実行する必要があります(つまり、ファイル内にある場合は、ファイルを実行するだけでなく、ソースにする必要があります)。または、必要な完了ルール/関数は定義されていません。
PS。 compgen -A
は組み込みのアクションに対してのみ機能します。試してみるべきだったのは(ただし、機能しません)compgen -F
(または実際にはcompgen -o bashdefault -o default -o nospace -F _git
)。これが機能しない理由(およびcompgen/completeを含むbash組み込みコマンドのドキュメント)は、 bash(1) にあります。