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