Я использую gVim для Windows. Мой код показывает символы ^M
в конце строк. Я использовал :set ff=dos
безрезультатно. Символы ^M
остаются для существующих строк, но не отображаются для новых строк, которые я вводил. Я переключил режимы на mac (показывает ^J
символы) и unix (также показывает символы ^M
) и обратно в dos. Кто-нибудь еще видел это?
GVim показывает возврат каретки (^ M), даже если файловый режим явно DOS
Ответ 1
Это происходит, когда у вас есть смесь концов строк Windows и Unix. Если у вас 100 строк, 99 -\r\n, а один -\n, вы увидите 99 символов. Исправление состоит в том, чтобы найти одну строку и заменить ее. Или запустите dos2unix в файле. Вы можете заменить окончание строки Windows:
:%s/\r\(\n\)/\1/g
Ответ 2
Вы также можете запустить:
:e ++ff=dos
Чтобы удалить ^M
: см. Формат файла - Vim Tips Wiki.
Ответ 3
Обычно я использую следующее для очистки окончаний строки:
:g/^M$/s///
Чтобы получить ctrl-M, я обычно набираю ctrl-Q, затем ctrl-M, и он помещает его. (В некоторых средах это может быть ctrl-V, затем ctrl-M.) Я не знаю, почему, но Я считаю, что легче запомнить, чем rq.
Не забудьте также сделать :set ff=dos
, иначе вы закончите сохранение с окончанием строки UNIX.
Ответ 4
Я знаю, что это уже ответили, но трюк, который я использую,
:%s/\r/\r/g
Это заменяет возвраты каретки unix с окнами CRLF. Просто добавил, если у кого-то еще были проблемы.
Ответ 5
Вы можете игнорировать эти символы!
поместите это в свой vimrc
совпадение Игнорировать /\ r $/
Ответ 6
На самом деле то, что сработало для меня (в 64-битных окнах gVIM: 7.2), было:
:set ffs=dos
не просто: ff
Ответ 7
Запуск Vim 7.3 в Windows 7. Я использовал следующую команду:
:%s/^M/\r/g
Чтобы создать ^ M, я набрал CTRL + Q, затем CTRL + M.
Ответ 8
Это, вероятно, немного просто для многих из вас, но по возможности это полезно.
Основываясь на ответе richq, я нашел, что они полезны в моем vimrc. Обратите внимание, что второй из них закомментирован нормально, потому что он немного сбивает с толку, так как Vim будет ждать, пока другой ход ключа не сработает, если он отобразил команду ex.
function! D2u() execute '%s/\r\(\n\)/\1/g' endfunction "map d2u :%s/\r\(\n\)/\1/g
Первый запускается путем ввода call D2u()
в ex, а второй - нажатием D2u
в режиме редактирования.
Ответ 9
Это дополнительные окончания строки CR, обычно из-за использования файла в смешанных системах UNIX/DOS.
Возможно, самый короткий ответ для удаления одного ^ М из конца каждой строки, и я использую:
:%s/\r
что эквивалентно:
:%s/\r//
но косые черты не требуются (они предполагаются).
Ответ 10
пробовал много вещей, но следующие работали
:%s/\r/\r/g
Примечание: используйте g, если вы хотите, чтобы эффект на весь файл