В моем случае я сделал
$ npm update
blockquote>Это должно включать в себя fabric-client@1.1.2 (at DateTime.Now = Jun / 09/2018)
«Эта функция сохраняет список переходов
fun! Dos2unixFunction()
let _s=@/
let l = line(".")
let c = col(".")
try
set ff=unix
w!
"%s/\%x0d$//e
catch /E32:/
echo "Sorry, the file is not saved."
endtry
let @/=_s
call cursor(l, c)
endfun
com! Dos2Unix keepjumps call Dos2unixFunction()
Ничто из вышеперечисленного не помогло мне. (замена на \ r, ^ M, ctrl-v-ctrl-m) Я использовал копирование и вставку, чтобы вставить свой текст в новый файл.
Если у вас есть макросы, которые мешают, вы можете попробовать :set paste
до операции вставки и :set nopaste
после.
Для того, чтобы символ ^ M соответствовал, мне пришлось визуально выбрать его, а затем использовать команду «Копировать в буфер обмена» для его извлечения. Вы можете проверить это, выполнив поиск символа, прежде чем пытаться выполнить команду замены.
/^M
следует выбрать первую неверную строку
:%s/^M/\r/g
заменит все ошибочные ^ M на возврат каретки.
Это как функции в MacVim, который основан на gvim 7.
РЕДАКТИРОВАТЬ:
Повторно возникла эта проблема на моем компьютере с Windows 10, на котором установлена Ubuntu для Windows, и я думаю, что это вызывает проблемы с форматированием файлов для vim. В этом случае изменение ff на unix, mac или dos ничего не изменило, кроме как изменить ^ M на ^ J и обратно.
Решение в этом случае:
:%s/\r$/ /g
:%s/ $//g
Причина, по которой я пошел по этому пути, заключается в том, что я хотел убедиться, что я был неразрушающим с моим файлом. Я мог бы :%s/\r$//g
, но это удалило бы возврат каретки сразу, и могло бы иметь неожиданные результаты. Вместо этого мы преобразуем единственный символ CR, здесь символ ^ M, в пробел, а затем удаляем все пробелы в конце строк (что для меня является желательным результатом независимо)
Извините за возрождение старого вопроса на это уже давно дан ответ, но, похоже, в замешательстве возникла некоторая путаница, и я подумал, что помогу кое-что прояснить, так как это происходит в поиске в Google.
В качестве альтернативы, существуют утилиты с открытым исходным кодом, называемые dos2unix и unix2dos, которые делают именно эту вещь. В системе Linux они, вероятно, установлены по умолчанию; для системы Windows вы можете загрузить их с http://www.bastet.com/ и др.
В моем случае
Ничто из вышеперечисленного не сработало, у меня был файл CSV, скопированный на компьютер Linux с моего компьютера Mac, и я использовал все вышеперечисленные команды, но ничего не помогло, кроме приведенной ниже
tr "\015" "\n" < inputfile > outputfile
У меня был файл, в котором символы ^ M были переключены между строками примерно так, как показано ниже
Audi,A4,35 TFSi Premium,,CAAUA4TP^MB01BNKT6TG,TRO_WBFB_500,Trico,CARS,Audi,A4,35 TFSi Premium,,CAAUA4TP^MB01BNKTG0A,TRO_WB_T500,Trico,
В vim
посмотрите формат файла - DOS или Unix:
: set filetype = unix
: set fileformat = unix
Файл будет записан без символов возврата каретки (CR, ^ M).
В Linux и Mac OS работает следующая
:%s/^V^M/^V^M/g
, где ^ V ^ M
означает тип Ctrl + V , затем Ctrl + M .
Примечание: в Windows вы, вероятно, захотите использовать ^ Q
вместо ^ V
, поскольку по умолчанию ^ V
сопоставляется для вставки текста.
^ M извлекается с помощью Ctrl + V и M , как и
s/^M//g
:%s/<Ctrl-V><Ctrl-M>/\r/g
Где
означает введите Ctrl + V , затем Ctrl + M .
:%s
замена,% = все строки
<Ctrl-V><Ctrl-M>
^ M символы (Ctrl-V - это способ Vim для записи символа Ctrl ^, а Ctrl-M записывает M после регулярного выражения, в результате получается ^ M специальный символ)
/\r/
с новой строкой ( \ r
)
g
И сделать это глобально (а не только первое вхождение в строке).