Назад | Перейти на главную страницу

Умное автозаполнение в SVN (и других программах!)

Когда я набираю "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 '\?*')
        ;;