1

こんにちは、Windows システムに cygwin がインストールされています。vi/vim を開くたびに gvim で開くように、プロファイル ファイルに 2 つの関数を記述しました。

しかし、この問題の 1 つは、Windows パスと Cygwin パスです。以下のようにCygpathで試しました:

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

しかし、これでは、「vi /etc/exports +5」のようなファイルを開くたびにエラーが発生します。そこで、どなたか解決策があれば教えてください。

4

2 に答える 2

1

cyg-wrapperは、この唯一の目的のために作成されました。

注意:関連するwikiaページも参照してください。

于 2011-05-13T15:09:14.197 に答える
1

ファイル引数のみを処理できます。

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" )
于 2011-05-13T07:42:55.740 に答える