[vim] 편집기에서 줄 바꿈 및 캐리지 리턴 확인
누구든지 Linux에서 줄 바꿈 및 캐리지 리턴을 볼 수있는 텍스트 편집기를 알고 있습니까? Vim이이 기능을 지원합니까?
답변
:set list
Vim에서 공백이 표시됩니다. 줄 끝은 ‘ $
‘ 로 표시 되고 캐리지 리턴은 일반적으로 ‘ ^M
‘ 로 표시됩니다 .
답변
공식 답변에 동의하지 않으려면 :
:set list
것입니다 하지 ^ M 문자 (CR을)를 보여줍니다. vi / vim에 -b 옵션을 제공하면 작동합니다. 또는 vim이로드되면을 입력하십시오 :e ++ff=unix
.
답변
VI는 x0A
다음 줄에 후속 텍스트를 보여줌으로써 개행 (LF 문자, 코드 )을 보여줍니다.
-b
이진 모드 에는 스위치를 사용하십시오 . 예를 들어 vi -b filename
또는 vim -b filename --
.
그런 다음 x0D
Unix 스타일 파일에서 일반적으로 사용되지 않는 CR 문자 ( )를 문자로 표시 합니다 ^M
.
답변
그냥 이유를 명확히하기 위해 :set list
CR의로 표시되지 않습니다 ^M
하지를 e ++ff=unix
왜 :set list
와는 아무 상관이 없습니다 ^M
들 ‘.
내부적으로 Vim 은 파일을 버퍼로 읽어 들일 때 모든 줄 끝 문자를 자체 표현으로 바꿉니다 (이를 호출합니다 $
). 어떤 문자를 제거해야하는지 결정하기 위해 먼저 파일에 어떤 형식 줄 끝이 저장되어 있는지 감지합니다. 단지 CRLF가있는 경우 '\r\n'
또는 유일한 CR '\r'
또는 유일한 LF '\n'
라인 끝 문자, 다음은 'fileformat'
로 설정 dos
, mac
그리고 unix
각각.
때 list
옵션이 설정되어, 빔 표시 $
문자 줄 바꿈는 상관없이 발생했을 때 fileformat
감지 된 옵션을 선택합니다. 자체 줄 바꿈 표현을 사용하며 이것이 표시됩니다.
이제 디스크에 버퍼를 쓸 때 Vim fileformat
은 감지 된 옵션 에 따라 줄 끝 문자를 삽입하여 본질적으로 모든 내부 $
문자를 적절한 문자 로 변환합니다 . 그런 fileformat
일이 발생하면 내부 줄 바꿈 대신 unix
쓸 \n
수 있습니다.
트릭은 Vim이 dos
인코딩 된 파일을 unix
하나로 읽도록 강제하는 것입니다. 순 효과는 모두 제거하는 것입니다 \n
의 떠나는 \r
그대로의 ‘를하고로 표시 ^M
하여 버퍼에의. 설정 :set list
하면 내부 줄 끝이로 표시됩니다 $
. 결국 인코딩 된 줄 바꿈 ^M$
대신에 표시 dos
됩니다.
또한의 표시와 :set list
는 아무런 관련이 없습니다 ^M
. 당신은 자신 (메이크업은 당신이 사용 중지하여 확인할 수 있습니다 list
사용하여 하나의 CR을 삽입하여 첫 번째 옵션을) CTRL-V
다음 Enter
삽입 모드입니다. 디스크에 버퍼를 쓴 후 다시 열면 옵션이 0으로 설정되어 ^M
있어도 볼 수 있습니다 list
.
파일 형식에 대한 자세한 내용은 http://vim.wikia.com/wiki/File_format 또는 :help 'fileformat'
Vim 을 입력하여 찾을 수 있습니다 .
답변
다음 명령을 시도하십시오.
: 바이너리 설정
VIM에서는 “-b”명령 행 옵션을 사용하는 것과 동일한 작업을 수행해야합니다. 이 파일을 시작 (예 : .vimrc) 파일에 넣으면 항상 자동으로 배치됩니다.
많은 * nix 시스템에는 파일을 처리하고 의심되는 줄 끝 문제를 해결할 수있는 “dos2unix”또는 “unix2dos”명령이 있습니다. 줄 끝에 문제가 없으면 파일이 변경되지 않습니다.
답변
명령 목록을 실행하기 위해 .vimrc 파일을 편집하는 것이 좋습니다. 다음과 같이 .vimrc 파일을 편집하십시오.
cat >> ~/.vimrc <<EOF
set ffs=unix
set encoding=utf-8
set fileencoding=utf-8
set listchars=eol:¶
set list
EOF
vim을 실행할 때 .vimrc에 대한 명령이 실행되며 다음 예제를 볼 수 있습니다.
My line with CRLF eol here ^M¶
답변
로 사용 cat
하고 -A
당신은 새로운 라인을 볼 수있는 $
탭으로,^I
cat -A myfile