function __git_blame -a var
    # is numeric 
    if [ "$var" -eq "$var" ] 2>/dev/null
        # number
        set myarg $arr[$var]
        git blame $myarg
    else
        # not a number
        git blame $var
    end
end

function __gbl
    # number
    set res (string split "-" -- (string trim $argv))
    set first $res[1]
    set length (count $res)
    set last ""

    # >
    if [ $length -gt 1 ]
        set last $res[2]
    else
        # just one
        __git_blame $myarg
        return
    end

    # first < last
    if [ $last != '' ]
        if [ $first -lt $last ]
          for i in (seq $first 1 $last)
              __git_blame $i
          end
        else
          echo 'argument is not valid.'
        end
    else
        __git_blame $first
    end
    #echo $res[1]end
end

function gbl
    echo '--'
    # space like, `gbl 1 2 3`
    echo $argv
    set res (string split " " -- (string trim $argv))
    set length (count $res)
    echo $length
    # only one
    if [ $length -eq 0 ]
        __gbl $argv
        return
    end

    for i in $res
        #echo $i
        __ga $i
    end
end