将Cygwin路径转换为Windows

时间:2011-05-13 06:22:49

标签: vim cygwin cygpath

HI, 我在我的Windows系统中安装了cygwin。 我在我的个人资料文件中写了两个函数,这样每次打开vi / vim时,都会打开gvim。

但是有了这个问题,windows路径和Cygwin路径。我尝试使用Cygpath如下:

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

用这个,当我打开这样的文件:“vi /etc/exports +5”时,它会导致错误。如果您有任何解决方案,请告诉我。

2 个答案:

答案 0 :(得分: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" )

答案 1 :(得分:1)

cyg-wrapper是为了这个目的而编写的。

注意:另请参阅相关的wikia page