vim에서 stdin을 열 때 강제 fileformat=unix

vim에서 stdin을 열 때 강제 fileformat=unix

존재하다https://stackoverflow.com/a/10280014/447503fileformat=unix일반 파일을 다시 열고 그 안에 s를 표시하는 방법을 설명합니다 . ^M또한 일반 파일을 사용하여 명령줄에서도 작동합니다.

$ vim -c "e ++ff=unix" aaa.txt
a^M
b^M
c^M

그러나 stdin에서 읽는 데 실패합니다.

$ cat aaa.txt | vim -R -c "e ++ff=unix" -
Vim: Reading from stdin...
Error detected while processing command line:
E32: No file name
Press ENTER or type command to continue
a
b
c

이는 이 명령이 vim에게 현재 열려 있는 파일을 다시 읽도록 지시하기 때문입니다. 처음부터 원하는 파일 형식으로 입력을 열도록 어떻게 지시합니까?

답변1

이는 ...로 오염된 콘텐츠를 여는 것보다 약간 더 강력할 수 있지만 ff=unix다음으로 바이너리 모드를 활성화할 수 있습니다.-b명령줄 플래그:

$ cat aaa.txt | vim -R -b -

당신은 또한 볼 수 있습니다:help 'binary', 'binary'이 기능을 구현하기 위한 옵션을 설명합니다. ( -b명령줄 인수는 인수로 전달된 파일을 읽기 전에 이 설정을 효과적으로 활성화합니다.)

에서 :help 'binary':

또한 옵션을 사용 'fileformat'하지 않으면 파일은 "unix"( 구분된 단일 줄) 'fileformats'처럼 읽고 씁니다 .'fileformat'<NL>

보시다시피 이는 설정과 약간 다르지만 ff=unix효과는 매우 유사합니다. 또한 편집 중에 활성화하면 및 같은 옵션 'binary'과 같은 다른 부작용이 있을 수 있지만 이 경우에는 이것이 허용될 수 있습니다(또는 이상적일 수도 있습니다). 전체 세부정보를 다시 확인하세요 .'textwidth''expandtab':help 'binary':help edit-binary도움이 될 수도 있습니다.

관련 정보