Programing

vim의 모든 줄 끝에서 ^ M

lottogame 2020. 7. 7. 07:43
반응형

vim의 모든 줄 끝에서 ^ M


vim 및 다른 편집기를 사용하여 소스 파일을 편집 할 때 가끔 줄 끝에 이러한 ^ M 문자가 표시됩니다. Windows에서 파일을 편집 한 다음 Linux에서 파일을 편집하는 것과 관련이 있다고 생각합니다. 이 모든 것을 자동으로 제거하려면 어떻게해야합니까?


명령으로

:%s/^M$//

^ M을 얻으려면 ^ V ^ M을 누릅니다. 여기서 ^는 대부분의 키보드에서 CTRL입니다.


DOS 줄 끝을 제거하는 쉬운 방법 중 하나는 ff옵션 을 사용하는 것입니다.

:set ff=unix
:wq

이제 파일이 유닉스로 돌아 왔습니다.

DOS 줄 끝 추가 하려면 (프린터를 행복하게 유지하거나 멋진 도구가없는 Windows 친구와 파일을 전송하기 위해) 반대 방향으로 쉽게 이동할 수 있습니다.

:set ff=dos
:wq

당신은 이것을 할 수 있습니다 :

:set fileformats=dos

^M파일을 건드리지 않고의 파일 을 숨 깁니다 .


dos2unix 라는 프로그램 이 있습니다. Windows는 다른 줄 끝 문자를 사용하므로 이런 일이 발생합니다.


이것은 한 줄에 모든 것이있는 파일에서 나를 위해 일했습니다.

먼저 모든 경기를 찾으십시오

:%s/^M//

(를 얻으려면 ^M^ V ^ M을 누르십시오. 여기서 ^는 Ctrl대부분의 키보드에 있습니다)

그런 다음 줄 바꿈으로 바꿉니다.

:%s//\r/g

결합 된 명령은 다음과 같습니다.

:%s/^M/\r/g

감염된 파일을 fromdos다시 열기 전에이를 실행하는 경향이 있습니다. tofrodos 패키지의 fromdos일부입니다 .


문제의 원인은 FTP 전송을 통한 것일 수 있습니다. 한 상자에서 다른 상자로 이러한 파일을 FTP로 전송할 때는 ASCII 전송을 사용해야합니다. "ASC"명령을 사용하십시오.


" put this in your ~/.vimrc file and :source ~/.vimrc
" then you can do: Dos2Unix
" dos2unix ^M
fun! Dos2unixFunction()
    let _s=@/
    let l = line(".")
    let c = col(".")
    try
        set ff=unix
        w!
        "%s/\%x0d$//e
    catch /E32:/
        echo "Sorry, first save the file."
    endtry
    let @/=_s
    call cursor(l, c)
endfun
com! Dos2Unix keepjumps call Dos2unixFunction()

mcedit : shift + f2, 유닉스 형식 설정 (LF), 확인

참고 URL : https://stackoverflow.com/questions/1110678/m-at-the-end-of-every-line-in-vim

반응형