VIM에서 이름이 지정되지 않은 버퍼의 인코딩을 변경하는 방법은 무엇입니까?

VIM에서 이름이 지정되지 않은 버퍼의 인코딩을 변경하는 방법은 무엇입니까?

가능합니까?

나는 명명된 버퍼(파일)에 대해 이 작업을 수행하는 방법만 알고 있습니다. 다시 열어야 해

++enc=<encoding>옵션. 그러나 이름이 지정되지 않은 버퍼는 다시 열 수 없습니다.

실행했는데 :set encoding=utf-8VIM에 표시된 텍스트를 여전히 읽을 수 없습니다. 버퍼를 파일에 저장한 후에만 열고 다시 열어야 :e ++enc=utf-8제대로 읽을 수 있습니다. 그러나 나는 버그를 발견했습니다 [ILLEGAL BYTE in line 37]. 하지만 나는 그것에 만족합니다. 가장 중요한 것은 내용을 읽을 수 있다는 것입니다.

오류 없이 실행했지만 :set encoding=utf-8아무 일도 일어나지 않는 것 같습니다.

가상 머신 7.4

답변1

다시 열 필요가 없습니다. 명령 모드에서 원하는 대로 인코딩을 설정할 수 있습니다.

:set encoding=whatever

예를 들어

:set encoding=utf-8

그런데 :help encoding-names지원되는 vim인코딩 목록을 입력하세요.

답변2

'encoding'옵션은 Vim의 텍스트 내부 표현에 관한 것입니다.모두완충기. Vim이 시작된 후에는 이 값을 변경해서는 안 되며, 버퍼 인코딩에 (적어도 직접적으로는) 영향을 미치지 않습니다!

당신이 찾고있는:help 'fileencoding'옵션:

:setlocal fenc=...

요약하자면, 새 버퍼에 입력하고 표시할 수 있는 문자 유형은 이 옵션에 의해 제어됩니다 'encoding'. 그것의 "최고의" 값은 입니다 utf-8. 왜냐하면 그것만이 나타내기 때문입니다.어느문자(유니코드 내). 이제 이름 없는 버퍼를 생성하고 이를 다른 인코딩으로 저장하려는 경우 'fileencoding'첫 번째 및 후속 쓰기(예: 에)에서 이를 변경할 수 있습니다. ucs-2le( :w ++enc=...또한 작동하지만 특정 쓰기에만 해당됩니다!)

대조적으로,발각이 옵션을 구성하려는 열린 파일 수입니다 'fileencodings'.

관련 정보