vim 하단의 [converted]는 무엇을 의미하나요?

vim 하단의 [converted]는 무엇을 의미하나요?

로그 파일이 있는데 vim을 통해 열면 읽을 수 없는 것처럼 보이고 맨 아래에 [변환]되어 있습니다. [변환]은 무슨 뜻인가요?

사람이 읽을 수 있도록 형식 문제를 해결하는 방법이 있나요?

답변1

이는 vim파일과 해당 로캘에서 제공하는 문자 집합 간의 불일치가 감지되어 변환되었음을 의미합니다. :set내부에서 명령을 실행하는 경우 vim:

:set
--- Options ---
  autoindent          fileformat=dos      scroll=7            textwidth=70
  background=dark     filetype=asciidoc   shiftwidth=2        ttyfast
  cscopetag           helplang=en         softtabstop=2       ttymouse=sgr
  cscopeverbose       hlsearch            syntax=asciidoc
noendofline           list                tabpagemax=3
  expandtab           ruler               textmode
  backspace=indent,eol,start
  comments=s1:/*,ex:*/,://,b:#,:%,:XCOMM,fb:-,fb:*,fb:+,fb:.,fb:>
  cscopeprg=/usr/bin/cscope
  fileencoding=utf-8
  fileencodings=ucs-bom,utf-8,latin1

마지막 2개의 옵션 fileencoding& 을 참고하세요 fileencodings.

첫 번째는 현재 파일에서 사용되는 인코딩이고 두 번째는 인식된 인코딩의 쉼표로 구분된 목록입니다.

따라서 이 메시지가 표시되면 에서 vim파일 전송이 완료되었음을 알려줍니다 .fileencodingencoding

자세한 내용을 보거나 알아 :help fileencoding보세요 :help encoding.

인용하다

이 질문에 답할 때 출처로 사용한 아래 스레드를 찾았습니다. 원래 사이트는 이제 사라졌으므로(이 답변의 기록에서 액세스 가능) 후손을 위해 이 스레드의 내용을 여기로 옮겼습니다. 이것링크는 여전히 Wayback Machine에 있습니다..

#1 Eli the Bearded January 21st, 2004 - 06:51 pm ET | Report spam
In comp.os.linux.misc, Leon. wrote:
Hide the quote
"Gaétan Martineau" wrote in message
news:E9jLb.2903$
> [ system_notes]$ vi installation_chouette.txt
> What means the [converted] at the bottom of the screen, as in:
> "installation_chouette.txt" [converted] 2576L, 113642C

It means that vim detected that the file did not match the
charset given by your locale and made a conversion. What does

:set

Tell you about "fileencoding" and "fileencodings"? The first is
the encoding used for the current file, the second is a comma
separated list of recognized encodings.

Hide the quote
> This file has accented characters. How can I save the file so that if I
> reload if again, I do not see "converted"?



Figure out what charset you want, and then

:set fileencoding=[charset]
:w

Hide the quote
It means deleting the Microsoft Dos/ Windows CR LF end of lines, to just
LF - unix standard end of lines.

It does not. If you open a file with DOS line ends, vim reports [dos]
after the filename, not [converted]. If you do have a dos file that
you wish to convert to unix line ends, you can

:set fileformat=unix
:w

Elijah

답변2

vim명령 모드 에서 다음을 입력합니다.

:help read-messages

너는 볼 수있어:

[converted]      conversion from 'fileencoding' to
                 'encoding' done

일반적으로 이는 vim이 파일이 해당 로캘에 지정된 문자 집합과 일치하지 않음을 감지하여 변환했음을 의미합니다.

자세한 내용을 보려면 , 을 시도해 보세요 :help fileencoding.:help fileencodings

답변3

이는 디스크에 있는 파일이 Vim 메모리 영역과 동일한 문자 세트를 사용하지 않으며 한 곳에서 다른 곳으로의 변환이 성공적이라는 것을 의미합니다. Esc 키를 누르고 이 명령을 입력하세요.

:set fileformat=unix

파일을 저장하고 다시 읽어보세요.

답변4

다른 답변은 의미를 잘 설명하지만 프로그래밍 방식으로 수정하는 방법은 다음과 같습니다.

고치다

파일 인코딩을 결정한 file다음 변환하는 데 사용합니다 iconv.

$ iconv -f $(file -b --mime-encoding my_file) -t utf-8 my_file > my_file_converted

설명하다

  • iconv -f"원본" 인코딩을 원하는 인코딩을 설정하세요.
  • file -b --mime-encoding my_file예를 들어 현재 파일의 인코딩을 출력합니다.iso-8859-1
  • -t utf-8인코딩하려는 인코딩을 "to"로 설정하세요.
  • my_file > my_file_converted변환된 데이터를 파일에 기록합니다. iconv기본값은 표준 출력입니다.

관련된:https://stackoverflow.com/questions/805418/how-can-i-find-encoding-of-a-file-via-a-script-on-linux

관련 정보