Linux의 Vi : DOS 형식 파일의 ^ M 줄 끝 표시


10

Solaris에서 Windows 줄 끝이있는 vi에서 파일을 열면 모든 줄 끝에 ^ M으로 표시됩니다.

Linux에서 vi는 더 똑똑하고 Windows 파일 형식을 이해하며 ^ M을 표시하지 않습니다.

이와 관련하여 Linux vi를 Solaris와 동일하게 작동시키는 설정이 있습니까?

우리에게 일반적인 문제는 쉘 스크립트를 (Windows) dev 상자에서 복사하고 dos2unix를 잊어 버린 다음 제대로 작동하지 않을 때 혼란스러워하는 것입니다. Solaris에서는 파일을 보자 마자 문제는 분명하지만 Linux에서는 그렇지 않습니다.

감사.


Linux에서 vi는 일반적으로 Bram Moolenaar의 vim 입니다. Solaris의 vi 는 독창적이지만 정통하지만 성능이 떨어지는 Bill Joy vi 입니다.
RedGrittyBrick 10

vim에서 기본적으로 no ^M는 보이지만 때로는 파일 끝에 하나가 있습니다.
trysis

답변:


10

:set ffs=unix모든 CR 문자를로 표시해야하는 vi를 시작할 때 (또는 vimrc에서 기본값으로 설정) 시도하십시오 ^M.

vi는 LF로 끝나거나 CR / LF로 끝나는 행이 있는지 여부에 따라 사용할 형식을 자동 추측합니다.


2
@RedGrittyBrick-내 시스템에서 모든 줄의 끝에 :set list표시 $(Unix & DOS 형식)하므로 두 가지를 구별하는 데 도움이되지 않습니다.
sss

@sss : 내 실수, 댓글을 삭제합니다.
RedGrittyBrick은

2
@gman-이 명령은 정확하게 작동하지 않았습니다 Not an editor command: ffs=unix. :set ffs=unixvi에서 파일을 연 상태에서 실행 하면 작동하지 않습니다. set ffs=unix내 .vimrc 파일에 넣고 작동했습니다.
sss

나는 @sss와 정확히 같은 것을 경험했습니다
SSH 이번

따라서 신중하게 준비된 사용자 구성이 손상됩니다. 나는 ffs그것이 있는 그대로의 방식을 원할 것입니다. 그러나 @wisbucky의 답변을 참조하십시오.
fork0

2

현재 파일의 dos 줄 끝을 표시하려면

:e +ff=unix

파일 형식을 유닉스로 강제 변환하면 다음과 같이 렌더링 CR됩니다.^M


이 설정을 영구적으로 유지하려면 다음에 추가하십시오 ~/.vimrc.

set ffs=unix

.vimrc 설정은 ffs아닙니다 ff.


이것은해야합니다 :e ++ff=unix, 저는 믿습니다.
fork0

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.