Что означает ^M character в Vim?
Я ^M
символ в моем vimrc, и он нарушает мою конфигурацию.
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
допустим, ваш текстовый файл - file.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
за подробностями.