
Estoy usando Vim (GVim, para ser precisos) en Windows 8 y quiero compilar con el formato habitual :!g++ %
, pero el nombre del directorio donde está almacenado mi archivo tiene acentos y Vim parece tener problemas con ellos.
Aquí está el resultado de la invocación :!g++ "%"
(Vim no parece agregar comillas alrededor de la ruta del archivo actual ni espacios de escape):
Para mayor claridad, la ruta completa al archivo que se muestra esE:\Programación\Problemas algoritmos\(ns) ACM-ICPC Live Archive 2088 - Entropy.cpp
Cuando uso Vim (en lugar de GVim), los acentos parecen manejarse correctamente, pero aún agrega un \
antes (
y )
, por lo que el comando invocado se ve así
g++ "E:\Programación\Problemas algoritmos\\(ns\) ACM-ICPC Live Archive 2088 - Entropy.cpp"
Ejecutando estos comandos
:set encoding?
:set termencoding?
En Vim muestra
encoding=latin1
termencoding=cp850
Pero en GVim muestra
encoding=latin1
termencoding=
¿Cómo podría solucionarlo?
EDITAR:
Ya lo intenté con las siguientes líneas en _vimrc:
set encoding=latin1
set termencoding=cp850
Parece que el verdadero problema no son los acentos sino los paréntesis. Por ejemplo, funciona con áéíóú.cpp
pero no con(a).cpp
Respuesta1
Creo que la forma correcta de resolver esto sería configurar su codificación de términos en su .vimrc. Sin embargo, si realmente no puede hacer que eso funcione, entonces es posible solucionarlo desde el otro extremo. Puede configurar la codificación de su shell cmd.exe usando el chcp
comando. Por ejemplo, esto podría funcionar, pero no lo he probado:
:!chcp cp1252 & g++ "%"
La página de códigos 1252 es un superconjunto de ISO-8859-1 (latin1) que aparentemente su Vim está usando para codificar.