Automatycznie znajdź parametr pliku w bashu


2

Próbowałem skonstruować metodę basha do automatycznego uzupełnienia argumentu pliku. więc kiedy piszesz vi not[tab][tab] automatycznie uzupełnia się do notes.md, jeśli znajduje się w historii lub ścieżce, lub wyświetla listę plików, gdy nie. Nie mogłem dowiedzieć się, jak to zrobić za pomocą bash_autocomplete, ale udało mi się utworzyć następującą funkcję, która działa poprzez wykonanie x vi not[enter]. Każdy wie, jak to przetłumaczyć na automatyczne uzupełnianie:

function x () {
    # last arg is file to find
    FILEARG=${@: -1}
    read -a FILES <<< $(timeout -k 1s 1s \
            find . -maxdepth 4 -name "*${FILEARG}*" -type f \
            -printf "%A@ %p\n"  | sort -nr | awk '{print $2}')
            #A@ access time epoc timestamp
            #C@ status change time
    # use this to only take latest:
    #FILES="${FILES[0]}"

    if [ ${#FILES[@]} -gt 1 ]; then
            select FILE in ${FILES[@]}; do
                    break
            done
    else
            FILE="${FILES[0]}"
    fi

    echo $FILE

    eval ${@:1:$#-1} $FILE
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.