1

Я использую Vim (GVim, если быть точным) под Windows 8, и я хочу скомпилировать с обычным :!g++ % , но имя каталога, в котором хранится мой файл, имеет ударения, и у Vim, похоже, с ними проблемы.

Вот результат вызова :!g++ "%" (кажется, что Vim не добавляет кавычки вокруг текущего пути к файлу и не экранирует пробелы):

Команда Invoking использует неправильную кодировку

Для ясности полный путь к указанному файлу:E:\Programación\Problemas algoritmos\(ns) ACM-ICPC Live Archive 2088 - Entropy.cpp

Когда я использую Vim (вместо GVim), акценты, кажется, обрабатываются правильно, но все равно добавляет \ before ( и ) , поэтому вызываемая команда выглядит следующим образом

g++ "E:\Programación\Problemas algoritmos\\(ns\) ACM-ICPC Live Archive 2088 - Entropy.cpp"

Выполнение этих команд

:set encoding?
:set termencoding?

В Vim показывает

encoding=latin1
termencoding=cp850

Но в GVim показывает

encoding=latin1
termencoding=

Как я мог решить это?

РЕДАКТИРОВАТЬ:

Я уже пробовал следующие строки в _vimrc:

set encoding=latin1
set termencoding=cp850

Похоже, настоящая проблема не в акцентах, а в скобках. Например, он работает с áéíóú.cpp но не с (a).cpp

1 ответ1

0

Я думаю, что правильный способ решить эту проблему - установить терменкодирование в вашем .vimrc. Однако, если вы действительно не можете заставить это работать, то может быть возможно обойти это с другого конца. Вы можете установить кодировку вашей оболочки cmd.exe с помощью команды chcp . Например, это может работать, но я не проверял:

:!chcp cp1252 & g++ "%"

Кодовая страница 1252 - это расширенный набор ISO-8859-1 (латиница 1), который Vim использует для кодирования.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .