SVN(和其他程序!)中的智能自动完成功能

SVN(和其他程序!)中的智能自动完成功能

当我输入“svn add path/to/somefile...”并按 Tab 键自动完成时,系统应该仅有的完整的文件/目录不是目前在 SVN 控制下。同样,当我提交、删除或解析文件时,制表符补全应该只补全与我正在做的事情相关的文件(即已修改、当前在 SVN 中或有冲突的文件)。这在 SVN 中尤其重要,因为您输入的每个文件名都可能受益于智能自动补全,但它也适用于其他程序。

我知道 bash 有一个 bash_completion 文件,可用于以编程方式改变这种行为,但我还没有找到一个像样的 SVN 完成示例,它实际上完成的是文件名而不是 SVN 命令名。

我的问题是:有人有这样的设置吗?有人使用其他 shell 或工具来执行类似操作吗?有人考虑过这个问题吗?

答案1

看一下找到的完成脚本这里.它可能接近于做你想做的事。

一段摘录看起来很有希望:

    # '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 '\?*')
        ;;

相关内容