Дополнительно
Как преобразовать ^м разрыв строки в 'нормальный' разрыв строки в файл, открытый в Vim?
ВИМ показывает на каждый конец строки ^м
Как мне сделать, чтобы заменить это с 'обычных' разрыв строки?
473
35
Команда #
Где в
<Ctrl " и " V><сочетание клавиш Ctrl-м>
означает тип <и>сочетание клавиш Ctrl</роз>+<и>в</роз> потом <и>сочетание клавиш Ctrl</роз>+<и>м</роз>. <БР/> <БР/>Объяснение
замены, % = всех строк
^M символов (сочетание клавиш ctrl-v-это ВИМ способ написания клавиши Ctrl ^ символ и Ctrl-м пишет м после регулярного выражения, в результате чего в ^М специальный символ)
с новой строки (
\Р
)И сделать это глобально (а не только первое вхождение в строку).
На Linux и Mac OS, то следующие работы,
где
^в^М
означает тип <и>на Ctrl</роз>+<и>в</роз>, потом <и>сочетание клавиш Ctrl</роз>+<и>м</роз>.<суб>Примечание: на Windows, вы, вероятно, хотите использовать
^м
вместо^в
, так как по умолчанию^в
сопоставляется вставить текст.</суб>В
ВИМ
, посмотри на формат файла — DOS или Unix:в <ы> У
:Установите тип файла=ОС UNIX
</с>установите значение=ОС UNIX`
Файл будет записан обратно без возврата каретки (CR, ^м) символов.
Это единственное, что работал для меня:
Нашли его по адресу: http://vim.wikia.com/wiki/File_format
Файл я создал с BBEdit видел в MacVim показывал кучу
возвращает строку^м
вместо обычных. Следующую строку заменить решена проблема - надеюсь, что это помогает:Это'ы интересно, потому что я'м заменять переносы строки с таким же характером, но я полагаю, что ВИМ просто нужно, чтобы получить свежий \р для корректного отображения. Я'd быть заинтересованы, чтобы знать базовую механику того, почему это работает.
Во-первых, использовать:установить ФФ?`, чтобы выяснить формат файла свой файл.
Я предполагаю, что это может быть
в Unix, то проблема в том, что файл был создан с
значение=Досдобавить " и^М^Ж" на конце линии, но прочитала с flieformat=ОС UNIX
только удаление " и^Ж" из конца строки, оставляя " и^М" и есть.Просто введите
:е ++ФФ=DOS и в командной строке Vim В изменить файл'формата S из Unix в DOS. Это должно решить проблему. Если нет,
:%с/\р//г` должны помочь вам.для того, чтобы получить ^м характером, чтобы соответствовать я должен был визуально выделить его, а затем использовать ОС скопировать в буфер обмена команду, чтобы восстановить его. Вы можете проверить это, выполнив поиск для персонажа, прежде чем пытаться команду заменить.
должны выбрать первый плохой линии
заменит все странствующие ^м с возврата каретки.
Это как функции в MacVim, который основан на GVim выступает 7.
Редактировать:
Опять эта проблема на моем компьютере под управлением Windows 10, которая есть в Ubuntu для Windows, и я думаю, что это вызывает вопросы fileformat для ВИМ. В этом случае изменение ФФ в Unix, Mac или Дос не изменить ^м ^J и обратно.
Решение в этом случае:
Причина, по которой я пошел этот маршрут, потому что я хотел удостовериться, что я был неразрушающего мой файл. Я мог бы
:%п/а\R$//г
но, что бы исключить возврат каретки и может иметь неожиданные результаты. Вместо этого мы преобразуем особой символов CR, здесь ^м характер, в пространство, а затем удалить все пробелы в конце строк (что для меня желаемого результата вне зависимости от)К сожалению в возрождении старый вопрос, который уже давным-давно ответил, но, казалось, какая-то путаница началась, и я думал, что я'd помогите прояснить некоторые, что после этого поднимается высоко в поисковых запросах в Google.
Ни один из этих работал для меня, поэтому я попытался это, который работал:
тип
:%ы/
пресс <и>Ctrl " и " V</КБД><и>на Ctrl-м</роз>
типа
//Г
пресс <и>введите</КБД>
Так что в целом команда в Vim должна выглядеть
:%ы/^г//г
Что это делает:
:%S
В (найти и заменить)/^м/
(этот символ)/
(не символов) иG
(во всем мире).Без необходимости использовать Ctrl:
:%п/а\R$//
^М извлекается <и>на Ctrl</роз>+<и>в</роз> и <и>м</роз>, так что
Простую вещь, что работал для меня
Я сделал это с помощью sed:
sed -и-Е 'ы/\р/\н/Г' имя_файла
Как насчет просто:
:%с/\р//г
Что сработало для меня.Это нужно просто почистить конце линии все линии, он удаляет ^м и, что'с его.
Есть много других ответов на этот вопрос, но все же, как лучше для меня, так как мне нужно решение командной строки:
Объяснение:
:е ++ФФ=Дос
, чтобы обновить весь файл в качестве окончания строки DOS.:ш ++ФФ=ОС UNIX
, чтобы записать файл, используя строки Unix окончаний<и>сочетание клавиш Ctrl</роз>+<и>м</роз> сокращает мое окно, но <и>клавиши Ctrl</роз>+<и>введите</роз> на самом деле вставляет
^м
характер. Я также должен был убедиться не поднять <и>на Ctrl</роз> ключ между нажатиями.Так что решение для меня было:
Где в
<Ctrl " и " V><международной научно-технической конференции>
средства для нажмите и удерживайте <и>сочетание клавиш Ctrl</КБД и GT; нажмите и отпустите <и>в</КБД и GT; нажмите и отпустите <и>введите</роз>, а затем отпустите <рэоз>сочетание клавиш Ctrl</КБД>.Если вы работаете на Windows-генерируемый файл
Описанное выше решение будет добавлять дополнительную строку между существующими строками, потому что уже невидимый
\р
после^м
.Чтобы предотвратить это, вы хотите, чтобы удалить символы
^м
без их замены.Где
%
означает "в этот буфер, и"ы
означает "подставить" Ну/
означает "(найти) следующим образом:" ПО в<Ctrl " и " V><международной научно-технической конференции>
ссылается на клавиши нажимать, чтобы получить^м
(см. выше),//
означает "разбитого корыта" и (или "с рисунком между этими двумя слешами, где пусто"), иГ
- Это флаг смысл-то ", то" глобально; в отличие от первого вхождения в строку.В моем случае
Ничего, работал, у меня CSV-файл скопирован в Linux-машину от моего Mac, и я использовал все вышеперечисленные команды, но ничего не помогало, но ниже
У меня был файл, в котором ^M символов были sandwitched между строк что-то вроде ниже
Этот работал для меня:
строка\Н
окончание)Так в Vim:
Кроме того, есть с открытым исходным кодом утилиты под названием dos2unix и unix2dos доступен, что делать это самое. В Linux они, вероятно, установлен по умолчанию; для системы Windows вы можете скачать их с http://www.bastet.com/][1] среди других.
где ^М набирается одновременным нажатием 3 клавиш, <и>сочетание клавиш CTRL + в + М</КБД>
использование утилиты dos2unix, если файл был создан в Windows, использование утилиты mac2unix, если файл был создан в Mac. :)