Перевод пути Cygwin в Windows - PullRequest
1 голос
/ 13 мая 2011

Привет, у меня установлен Cygwin в моей системе Windows.Я написал две функции в своем профиле, так что каждый раз, когда я открываю vi / vim, он открывается с помощью gvim.

Но с этим одним из вопросов, путь Windows и путь Cygwin.Я попытался с Cygpath, как показано ниже:

function vi () 
{ 
    win_file_path=$(cygpath -w $*)
    gvim "$win_file_path" & 
}

Bu с этим, когда я открываю файл, подобный этому: "vi /etc/exports +5", это приведет к ошибке.Итак, дайте мне знать, если у кого-нибудь из вас есть какое-либо решение.

Ответы [ 2 ]

1 голос
/ 13 мая 2011

cyg-wrapper было написано для этой единственной цели.

Примечание: см. Также связанную страницу wikia .

1 голос
/ 13 мая 2011

Вы можете обрабатывать только аргументы файла:

function vi ()  
{   
    local -a viargs
    local a
    while [[ $# -gt 0 ]]
    do
        a="$1"
        if [ -e "$a" ]; then a="$(cygpath -w "$a")"; fi
        viargs[${#viargs[@]}]="$a"
        shift
    done
    gvim "${viargs[@]}" &  
}

Вместо того, чтобы быть «умным» в отношении существующих файлов, подобных этому, не стесняйтесь упростить обработку только первого аргумента:)

В последних версиях bash вы можете заменить некрасивую строку

        viargs[${#viargs[@]}]="$a"

с

        viargs+=( "$a" )
...