для того, чтобы символ ^ M соответствовал, мне пришлось визуально выбрать его, а затем использовать команду OS copy to clipboard для его получения. Вы можете проверить это, выполнив поиск символа, прежде чем пытаться выполнить команду замены.
/^M
следует выбрать первую плохую строку
:%s/^M/\r/g
заменит все ошибочные ^ M на возврат каретки.
Это как функции в MacVim, который основан на gvim 7.
EDIT:
Снова возникла эта проблема на моем компьютере с Windows 10, на котором установлена Ubuntu для Windows, и я думаю, что это вызывает проблемы с форматированием файлов для vim. В этом случае изменение ff на unix, mac или dos ничего не изменило, кроме как изменить ^ M на ^ J и обратно.
Решение в этом случае:
:%s/\r$/ /g
:%s/ $//g
Причина, по которой я пошел по этому пути, заключается в том, что я хотел убедиться, что у меня нет деструктивного файла. У меня могло бы быть :%s/\r$//g
, но это удалило бы возврат каретки прямо, и могло бы иметь неожиданные результаты. Вместо этого мы преобразуем единственный символ CR, здесь символ ^ M, в пробел, а затем удаляем все пробелы в конце строк (что для меня является желательным результатом независимо)
Извините за возрождение старого вопроса, на который давным-давно был дан ответ, но, похоже, в замешательстве возникла некоторая путаница, и я подумал, что помогу кое-что прояснить, так как это происходит в поиске в Google.