現在、Bash で svn のリモート URL 補完のサポートを追加しています。私は現在、変更された bash-completion-svn を使用しています。これは、次のように URL で完了をいつトリガーするかを判断します。
svn+ssh://$HOST/$DIR/prefix_string
URL ( ) の子育てディレクトリの部分を抽出し、それをsvn+ssh://$HOST/$DIR
呼び出すことができました。svn ls
cur_suffix=prefix_string
ここで残っているのは、URL のディレクトリ部分と、prefix_string
その後に入力したユーザー (空でもかまいません) を使用して補完を行う方法です。これを機能させるために使用できますcompgen
か?
これは、url の最後の文字がスラッシュの場合に可能な補完のリストを取得するか、サフィックスが空の場合は完全なディレクトリを取得することです。
現在、私は使用しています
fix=( $(compgen -o nospace -W "$remote_fileds" -- $cur_suffix))
次のような URL の補完を行う
svn://HOST/DIR/a
たとえばに完了する
svn://HIST/DIR/a_file
ただし、何があっても常に最初の選択肢を選択し、私が書いたにもかかわらず常にスペースを挿入します-o nospace
。他に一致する可能性がある場合 (接頭辞が一意ではない場合) に補完 compgen が完了しないようa
にする方法と、カーソルを移動せずにこれらの一致をカーソルの下に印刷する方法を教えてください。これしかできないcomplete
?