CR 시퀀스(\r)가 .vimrc 파일에 입력되는 이유는 무엇입니까?

CR 시퀀스(\r)가 .vimrc 파일에 입력되는 이유는 무엇입니까?

아래의 '~/.vimrc' 파일을 살펴보세요.

:map g :w
:map g :w

보세요, 같은 줄이 반복됩니다. 첫 번째 줄을 작성한 후 "Enter"를 눌렀습니다.

이제 아래 od 명령의 출력을 살펴보세요.

ravi@ravi-Aspire-5315:~$ od -bc .vimrc
0000000 072 155 141 160 040 147 040 072 167 015 012 072 155 141 160 040
          :   m   a   p       g       :   w  \r  \n   :   m   a   p    
0000020 147 040 072 167 015 012
          g       :   w  \r  \n
0000026
ravi@ravi-Aspire-5315:~$

Windows 시스템이 아닌 Linux 시스템이므로 여기에 CR(\r) 시퀀스를 입력한 이유가 궁금합니다.

이제 .vimrc 파일의 내용을 다음과 같이 변경합니다.

:set showmode

od이제 명령을 실행하면 다음과 같이 출력됩니다.

ravi@ravi-Aspire-5315:~$ od -bc .vimrc
0000000 072 163 145 164 040 163 150 157 167 155 157 144 145 015 012
          :   s   e   t       s   h   o   w   m   o   d   e  \r  \n
0000017

이제 vim명령을 통해 파일을 열 때마다 오류가 발생합니다.vim

vim .vimrc
Error detected while processing /home/ravi/.vimrc:
line    1:
E488: Trailing characters: showmode^M
Press ENTER or type command to continue

"^M"과 동일한 CR(\r) 시퀀스로 인해 오류가 발생하는 것으로 알고 있습니다.

질문 2개

1) vim시퀀스 명령에서는 오류가 발생하지만 명령에서는 오류가 발생하지 않는 이유는 무엇입니까?set\rmap

2) 놀랍게도 \r이것은 Windows 머신이 아닌 Linux이기 때문에 왜 입력합니까? 우분투 15.10을 사용하고 있습니다.

답변1

일반적으로 다음과 같은 라인은

:map g :w

문자 그대로의 의미가 있을 것입니다.^M종료, 를 누르지 않고도 사용자의 지도 명령을 완료할 수 있습니다 Enter.

예를 들어 .vimrc몇 줄로만 구성된 경우에는 대부분 다음과 같습니다.^M끝이 있으면 vim은 파일이 DOS(캐리지 리턴/줄 바꿈) 끝을 사용한다고 추측하고 항상 해당 규칙을 사용하여 파일에 대한 업데이트를 저장합니다.

추가 읽기를 위해

파일은 .vimrc다른 텍스트 파일과 같습니다. vim이 추측할 것입니다.그것은읽을 때 줄 끝. 실제로 원본 파일 끝에 두 개의 ^M이 있는 파일을 생성할 수 있습니다. (1) 명령 종료 map, (1) 행 종료.

관련 정보