
Windows 8에서 Vim(정확하게는 GVim)을 사용하고 있는데 평소대로 컴파일하고 싶은데 :!g++ %
파일이 저장된 디렉터리 이름에 악센트가 붙어 있는데 Vim에 문제가 있는 것 같습니다.
호출 결과는 다음과 같습니다 :!g++ "%"
(Vim은 현재 파일 경로 주위에 따옴표를 추가하지도 않고 공백을 이스케이프하지도 않는 것 같습니다).
명확성을 위해 표시된 파일의 전체 경로는 다음과 같습니다.E:\Programación\Problemas algoritmos\(ns) ACM-ICPC Live Archive 2088 - Entropy.cpp
GVim 대신 Vim을 사용하면 악센트가 제대로 처리되는 것처럼 보이지만 여전히 \
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
이 문제를 해결하는 올바른 방법은 .vimrc에 용어 코딩을 설정하는 것입니다. 그러나 실제로 해당 작업을 수행할 수 없는 경우 다른 쪽에서 이 문제를 해결하는 것이 가능할 수도 있습니다. 명령 을 사용하여 cmd.exe 셸의 인코딩을 설정할 수 있습니다 chcp
. 예를 들어 이것은 작동할 수 있지만 테스트하지는 않았습니다.
:!chcp cp1252 & g++ "%"
코드페이지 1252는 Vim이 인코딩에 사용하고 있는 것으로 보이는 ISO-8859-1(latin1)의 상위 집합입니다.