3

現在、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

4

1 に答える 1