Este é um erro de vim
.
Não é um problema, ao contrário do que romainl
diz em um comentário à pergunta, com cmd
. Não tem nada a ver com cmd
de fato. Tanto cmd
quanto start
estão se comportando conforme planejado.
O problema é que vim
está usando UTF-8 (veja :help unicode
.) para armazenar e manipular a cadeia de comandos, e está passando essa cadeia UTF-8 como está para uma API de programação que não aceita UTF-8 em primeiro lugar. Especificamente: Ele acaba passando a string UTF-8 para a função CreateProcessA()
. Mas CreateProcessA()
leva cadeias codificadas no Página de códigos do Windows . vim
deve converter a string de antemão de UTF-8 para a página de código apropriada (ou para Unicode e chamar CreateProcessW()
). Mas isso não acontece.
Como consequência, a sequência de bytes no seu nome de caminho UTF-8, como construída por vim
de %:p:h
, está sendo tratada por CreateProcessA()
como se fosse uma sequência de bytes na página de código do Windows. Você pode ver o resultado.
Provavelmente não há correção local para isto. Usar nomes 8.3 ( :8
) não corrigirá isso. Mas mexer com a variável vim
encoding
pode melhorar até certo ponto (embora isso afete mais do que isso e não seja a maneira correta de resolver o problema). Você terá que falar com Bram Moolenaar. (Consultando a lista de erros vim
7.3, acho que você também pode falar com essa pessoa , embora convencer M. Moolenaar de que kikuchan não está sozinho, ainda é uma boa idéia.)