^ M в конце каждой строки в vim

Когда я редактирую исходные файлы с помощью vim и других редакторов, иногда в конце строки я получаю эти символы ^ M в конце каждой строки. Я думаю, что он имеет какое-то отношение к редактированию файла в окнах, а затем в Linux. Как я могу удалить все это автоматически?

Ответ 1

В качестве команды введите

:%s/^M$//

(Чтобы получить ^ M, нажмите ^ V ^ M, где ^ - CTRL на большинстве клавиатур)

Ответ 2

Один простой способ лишить конец строки DOS - использовать параметр ff:

:set ff=unix
:wq

Теперь ваш файл возвращается к добрым-Unix-способом.

Если вы хотите добавить линейные окончания DOS (чтобы поддерживать принтер или передавать файлы с друзьями Windows, у которых нет хороших инструментов), вы можете легко перейти в противоположное направление:

:set ff=dos
:wq

Ответ 3

Вы можете сделать это:

:set fileformats=dos

Он скроет ^M, не касаясь файла.

Ответ 4

Там есть программа под названием dos2unix, которая должна лишить их. Windows использует разные символы окончания строки, поэтому это происходит.

Ответ 5

Это работало для меня в файле, который имел все в одной строке:

Сначала найдите все соответствия

:%s/^M//

(Чтобы получить ^M, нажмите ^ V ^ M, где ^ - Ctrl на большинстве клавиатур)

Затем замените на новые строки

:%s//\r/g

Комбинированная команда:

:%s/^M/\r/g

Ответ 6

Я пытаюсь запустить зараженные файлы через fromdos, прежде чем их снова открыть. fromdos является частью пакета tofrodos.

Ответ 7

Источником проблемы может быть передача через FTP. Когда вы загружаете эти файлы из одной коробки в другую, обязательно используйте ASCII-передачи. Используйте команду "ASC."

Ответ 8

" put this in your ~/.vimrc file and :source ~/.vimrc
" then you can do: Dos2Unix
" dos2unix ^M
fun! Dos2unixFunction()
    let [email protected]/
    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()

Ответ 9

mcedit: shift + f2, установить формат unix (LF), ok