중국어 디렉터리에 있는 파일을 엽니다. GVIM의 현재 디렉터리가 중국어 디렉터리가 아니거나 파일 이름이 중국어인 경우 명령 모드에서 :!%
를 입력하면 이 창이 팝업되고 오류가 보고됩니다. 영문 파일명이나 영문 경로에는 문제가 없습니다.
黄舟2017-05-16 16:41:56
이것은 중국어나 영어와는 관련이 없는 것 같습니다. 두 스크린샷을 살펴보겠습니다.
귀하의 설명에 따르면 중국어 파일명과 영어 파일명을 차례로 사용하여 파일을 실행했는데 표시되는 결과는 동일했습니다.
핵심은 :!%
명령이 실제로 의미하는 바입니다. :!
는 vim 쉘에서 쉘 명령을 실행하는 것이고, %
는 현재 파일 이름을 참조하므로 파일 이름을 명령으로 실행하는 것과 같습니다. 중국어든 영어든 Windows에서 볼 수 있는 "시스템이 지정된 경로를 찾을 수 없습니다"라는 명령을 찾을 수 없음
을 보고합니다. :!%
命令到底是什么意思。:!
是在 vim shell 里执行一个 shell 命令,而 %
指代当前的文件名于是你的操作等于把文件名当作一个 command 来执行了,那么不管是中文还是英文都会报 command not found
,也就是你在 windows 下看到的“系统找不到指定的路径”吧。
不知道你输入 :!%
命令的目的是什么呢?如果是为了打开文件,那么可以 :!open %
:!%
명령을 입력하는 목적이 무엇인지 모르겠습니다. 파일을 열려면 :!open %
를 사용하면 됩니다. 이렇게 하면 Mac의 현재 버퍼에 있는 파일 내용을 열 수 있습니다. 🎜某草草2017-05-16 16:41:56
gvim은 기본적으로 utf-8 형식으로 시스템에 문자를 보냅니다. h:termencoding
을 참조하세요.
귀하의 경우 utf-8의 한자는 시스템 cmd로 전송된 후 cp936 인코딩을 통해 표시되므로 디스플레이가 깨집니다.
다음과 같이 테스트하여 확인할 수 있습니다: cp936 표시를 강제로 설정하려면 인코딩=cp936을 설정하고, !%를 입력한 후 파일을 실행하세요. cmd에서 표시되는 잘못된 파일 이름이 강제로 표시하려는 내용과 일치합니다
高洛峰2017-05-16 16:41:56
최근에 좋은 방법을 발견했어요. 이전에는 CMD 창이 "cp936"이고 GVIM에서 보낸 파일 이름이 "UTF-8"이라는 것이 분명했습니다.
그러므로 GVIM의 iconv()
함수를 사용하여 GVIM 내부의 "UTF-8"을 "cp936"으로 변환하고 CMD에 전달합니다. 이런 식으로 이전 문제를 해결할 수 있습니다.
현재 이 문장을 사용하여 완성할 수 있습니다:
약간의 수정으로 다른 기능을 사용할 수도 있습니다.
주요 아이디어 출처: http://www.oschina.net/code/snippet_574132_13357