LINUX.ORG.RU

значение «^M» в vim?


0

0

Перекинул с оффтопа текстовый файл, открываю в (g)vimе и в конце каждой строки вижу этот ^M. Что за и как от этого избавиться?

anonymous

В командном режиме:

:%s/^M$//

Для того, чтобы набрать ^M, последовательно нажимаем Ctrl-V и Ctrl-M.

Я почти уверен, что это описано в FAQ, и совсем уверен - что ты его не читал. Хотя специально для таких как ты перед отправкой сообщения предлагается его прочесть. Чукча не читатель?

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

> В командном режиме: :%s/^M$//

не помогает

> Для того, чтобы набрать ^M, последовательно нажимаем Ctrl-V и Ctrl-M.

это мне знать не к чему

> Я почти уверен, что это описано в FAQ, и совсем уверен - что ты его не читал. Хотя специально для таких как ты перед отправкой сообщения предлагается его прочесть. Чукча не читатель?

Так сначала убедись. У вима такой масивный фак, что можно часами искать решение одной маленькой проблемы.

anonymous
()

Если я не ошибаюсь то это символ разрыва строки CR(/)LF...

gh0stwizard ★★★★★
()

Это остатки от досовского (или виндового) 0x0D 0x0A перевода строки. Вообще-то vim должен автоматически опознавать, что это - текстовый файл в формате DOS/Win и говорить об этом (надпись в строке статуса - что-то типа "[dos]"). Для того, чтобы выставить нужный режим перевода строк нужно использовать :set fileformat=dos или unix соответственно

Если на некоторых строках файла нет 0x0D 0x0A, а есть только 0x0A, формат файла считается автоматически unix и тогда появляются эти ^M. Для того, чтобы их убрать :s/\r//g

arnold_shade
()
Ответ на: комментарий от arnold_shade

> Это остатки от досовского (или виндового) 0x0D 0x0A перевода строки. Вообще-то vim должен автоматически опознавать, что это - текстовый файл в формате DOS/Win и говорить об этом (надпись в строке статуса - что-то типа "[dos]"). Для того, чтобы выставить нужный режим перевода строк нужно использовать :set fileformat=dos или unix соответственно

безрезультатно..

anonymous
()
Ответ на: комментарий от anonymous

Кстати, если всё же хотите сделать это средствами Vim, то на самом деле надо писать:
:e ++fileformat=dos

Если же делать как советовал arnold_shade, то тогда Vim не переоткрывает файл в новом режиме, а переводит его в соответствующий режим, заменяя все переводы строк на новый символ перевода строки.

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

> не помогает

Ты что-то делаешь неправильно.

> это мне знать не к чему

Например вот это. Кстати показательная фраза.

> У вима такой масивный фак,

Причём тут фак вима? Тебе его что ли показывали, перед тем как ты сюда это запостил? Я про лоровский фак.

И вообще ты в курсе, для чего факи пишут? Так вот, не для того, чтобы кто-то говорил что он типа огромный.

Teak ★★★★★
()

:%s/\r//g не помогает?

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