Traduzindo o caminho do Cygwin para o Windows
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.
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.