Mac 컴퓨터에 vi/vim만 사용해 편집한 텍스트 파일이 있습니다. 오늘 vi를 사용하여 열었을 때 곳곳에 많은 문자가 있는 것을 발견했습니다 ^M
. 오늘 다르게 한 유일한 일은 echo "some text" >> file.txt
이전에 리디렉션한 것뿐인데 다른 파일에서 재현할 수 없는 것 같습니다.
이 ^M
문자가 나타나는 이유는 무엇입니까?
답변1
이는 가설이고 질문자는 다음 작업을 모두 수행하지 않는다고 생각하기 때문에 부분적인 답변입니다.
에서와 같이논평통과랄프 렌퀴스트, "Mac에서는 ^M
줄 종결자로 사용되며 Windows ^M^J
에서는 Unix로 사용됩니다 ^J
." Vim은 세 가지 형식을 모두 처리할 수 있습니다. 예를 들어, 새 파일을 생성하고 (예를 들어) 를 사용하여 저장할 때 사용할 파일을 지정할 수 있습니다 :set ff=mac
.
vim으로 파일을 열면 vim이 자동으로 인코딩을 결정하고 적절하게 줄 바꿈을 표시할 수 있습니다. 그러나 vim은 fileformats
. 따라서 만약 fileformats=unix,dos
그렇다면 vim은 파일을 Mac 형식으로 여는 것을 결코 고려하지 않을 것입니다. 따라서 Mac vim에서 파일을 생성한 다음(예: Mac 줄 바꿈 사용) Linux vim에서 파일을 열면(예: vim 사용 ) 줄 바꿈 대신 fileformats=unix,dos
표시됩니다 . ^M
상상할 수 있듯이 Mac에서 파일이 생성된 후 전체 파일을 처리했을 수도 있습니다.
고려해야 할 또 다른 점은 하나의 형식으로 파일을 생성할 수 있는지 여부입니다 echo foo >> filename
. 원본 형식이 Mac이고 Linux에서 추가하면 파일에 혼합 형식이 포함됩니다. fileformats
설정이 무료라고 가정하면 (즉 fileformats=unix,dos,mac
, 이 경우 vim은 Mac 형식을 선택하는 것 같습니다.