
Я использую Vim (точнее, GVim) под Windows 8 и хочу скомпилировать с помощью обычного редактора :!g++ %
, но в имени каталога, где хранится мой файл, есть знаки ударения, и у Vim, похоже, с ними проблемы.
Вот результат вызова :!g++ "%"
(Vim, похоже, не добавляет кавычки вокруг текущего пути к файлу и не экранирует пробелы):
Для ясности полный путь к файлу показан следующим образом:E:\Programación\Problemas algoritmos\(ns) ACM-ICPC Live Archive 2088 - Entropy.cpp
Когда я использую Vim (вместо GVim), акценты, похоже, обрабатываются правильно, но он все равно добавляет \
перед ним (
и )
, поэтому вызванная команда выглядит так:
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
Я думаю, что правильным способом решения этой проблемы будет установка кодировки termencoding в вашем .vimrc. Однако, если вы действительно не можете заставить это работать, то, возможно, можно обойти это с другой стороны. Вы можете установить кодировку вашей оболочки cmd.exe с помощью команды chcp
. Например, это может сработать, но я не проверял:
:!chcp cp1252 & g++ "%"
Кодовая страница 1252 — это надмножество ISO-8859-1 (latin1), которое, по-видимому, использует ваш Vim для кодирования.