Pergunta

Olá, eu tenho o Cygwin instalado no meu sistema Windows.Eu escrevi duas funções em meu arquivo de perfil para que toda vez que eu abrir o vi/vim, ele abra com o gvim.

Mas com esse problema, o caminho do Windows e o caminho do Cygwin.Eu tentei com Cygpath como abaixo:

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

Mas com isso, sempre que abro um arquivo como este:"vi /etc/exports +5", resultará em erro.Então deixe-me saber se algum de vocês tem alguma solução.

Foi útil?

Solução

Você pode tratar apenas os argumentos do arquivo:

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[@]}" &  
}

Em vez de ser 'inteligente' sobre arquivos existentes como este, sinta-se à vontade para simplificar e tratar apenas o primeiro argumento :)

Nas versões recentes do bash você pode substituir a linha feia

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

com

        viargs+=( "$a" )

Outras dicas

invólucro de cyg foi escrito com esse único propósito.

Observação:Veja também o relacionado página wikia.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top