Когда я набираю "svn add path / to / somefile ..." и нажимаю вкладку для автозаполнения, система должна только полные файлы / каталоги, которые не в настоящее время под контролем SVN. Аналогичным образом, когда я фиксирую, удаляю или разрешаю файлы, завершение вкладки должно завершать только файлы, которые имеют отношение к тому, что я делаю (т.е. измененные, в настоящее время в SVN или конфликтующие). Это особенно важно в SVN, где каждое имя файла, которое вы вводите, потенциально может выиграть от интеллектуального автозаполнения, но это не относится к другим программам.
Я знаю, что в bash есть файл bash_completion, который можно использовать для программного изменения этого поведения, но я не нашел достойного примера завершения SVN, который фактически завершает имена файлов, а не имена команд SVN.
У меня вопрос: есть ли у кого-нибудь такая установка? Кто-нибудь использует другую оболочку или инструмент, который делает что-то подобное? Кто-нибудь думал об этом?
Взгляните на найденный сценарий завершения Вот. Может быть, вы делаете то, что хотите.
Отрывок выглядит многообещающим:
# 'files' is set according to the current subcommand
case $cmd in
st*) # status completion must include all files
files=$cur*
;;
ci|commit|revert|di*) # anything edited
files=$($status $cs| _svn_grcut '@([MADR!]*| M*|_M*)')
;;
add) # unknown files
files=$($status $cs| _svn_grcut '\?*')
;;