В настоящее время я добавляю поддержку удаленного завершения URL для svn в Bash. В настоящее время я использую модифицированный 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
?