1

嗨,我在我的 Windows 系统中安装了 cygwin。我在我的配置文件中编写了两个函数,这样每次打开 vi/vim 时,它都会用 gvim 打开。

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

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

有了这个,当我打开这样的文件时:“ vi /etc/exports +5”,它会导致错误。所以让我知道你们是否有任何解决方案。

4

2 回答 2

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 回答
1

cyg-wrapper就是为此目的而编写的。

注意:另请参阅相关的wikia 页面

于 2011-05-13T15:09:14.197 回答