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.)
