LINUX.ORG.RU

mcedit и vim

 ,


0

1

Есть файл, изначально созданный в Windows и в котором все строчки, как водится, заканчиваются ^M. Почему-то эти символы показываются в mcedit, а в vim - нет. Установка :set fileformat=unix ничего не меняет. При попытке удалить символы командой :%s/^M//g говорит: нет там ^M. Так есть они там или нет? И вообще, как удалить их в mcedit? Нажатие Ctrl-V Ctrl-M там не работает.

★★★★

И вообще, как удалить их в mcedit?

^M — это \r, только нужно указать, что используешь regular expression

Но проще всего будет удалить, используя

  • dos2unix
  • sed -e 's/\r//g' -i $FILENAME
  • set ff=unix с последующим save в vim
kawaii_neko ★★★★
()
Ответ на: комментарий от malya

Показывает и виндусовский и линуксовый конец строки в виде знака доллара $. Так их не различишь.

hotpil ★★★★
() автор топика
Ответ на: комментарий от hotpil

Не видны, так как vim понял, что перевод строки виндовый, и разбил строки по нему, заменив пару символов перевода строки самим переводом. ^M будут видны, если переоткрыть файл как если бы он был с unix-переводами:

:e ++ff=unix
В этом случае они не обрабатываются как часть перевода и присутствуют как часть строки.

xaizek ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.