15 ответов:
Unix использует 0xA для символа новой строки. Windows использует комбинацию из двух символов: 0xD 0xA. 0xD-символ возврата каретки.
^Mпроисходит так, как vim отображает 0xD (0x0D = 13, M-13-я буква в английском алфавите).вы можете удалить все
^Mсимволы, выполнив следующее::%s/^M//gздесь
^Mвводится, удерживая нажатой клавишу Ctrl и введя v следовал по m, и после освобождения Ctrl. Это иногда сокращается как^V^M, но обратите внимание, что вы должны ввести его, как описано в предыдущем предложении, а не вводить его буквально.это выражение заменит все вхождения
^Mс пустой строкой (т. е. ничего). Я использую это, чтобы избавиться от^Mв файлах, скопированных из Windows в Unix (Solaris, Linux, OSX).
это, вероятно, означает, что у вас есть возврат каретки (разные операционные системы используют разные способы сигнализации конца строки).
использовать
dos2unixчтобы исправить файлы или установить fileformats в vim:set ffs=unix,dos
допустим, ваш текстовый файл - файл.txt, затем выполните эту команду -
dos2unix file.txtон преобразует текстовый файл из dos в формат unix.
Я удалил их все с sed:
sed -i -e 's/\r//g'также можно заменить другой строкой или символом:
sed -i -e 's/\r/string/g'
Я получил текстовый файл, первоначально созданный на машине Windows с помощью пользователя Mac, и мне нужно было импортировать его в Linux MySQL DB с помощью
если он нарушает вашу конфигурацию, и символы ^M требуются в сопоставлениях, вы можете просто заменить символы ^M на
<Enter>или даже<C-m>(оба набраны как простые последовательности символов, так 7 и 5 символов соответственно).это единственный рекомендуемый, портативный способ хранения специальных кодов ключей в сопоставлениях
во FreeBSD вы можете очистить
^Mвручную введите следующее:
:%s/Ctrl+V, потом Ctrl+M, потом Ctrl+M еще раз.
Я обнаружил, что я загрязняю файлы в течение нескольких недель из-за того, что мой экземпляр Homebrew Mvim был настроен на использование filetype=dos. Внес необходимые изменения .vimrc....
если вы не указали другой
fileformatумышленно (скажем,:e ++ff=unixдля файла Windows), вполне вероятно, что целевой файл имеет смешанные EOLs.например, если файл имеет несколько строк с
<CR><NL>окончания и другие с<NL>концовки, иfileformatустановлено значениеunixавтоматически Vim при чтении его,^M (<CR>)появится. В таких случаяхfileformatsвступает в игру. Смотрите:help ffsза подробностями.
Comments