Конвертируйте окончания строки DOS в окончания строки Linux в vim

Лучше всего импортировать каждый модуль, который определяет нужные вам идентификаторы, и использовать эти идентификаторы в качестве квалифицированных по имени модуля; Я рекомендую использовать from только тогда, когда то, что вы импортируете, является модулем изнутри пакета. Вопрос часто обсуждался на SO.

Импортирование модуля, скажем moda, из многих модулей (например, modb, modc, modd, ...), которые нуждаются в одном или больше идентификаторов moda определяет, не замедляет работу: байт-код moda загружается (и, возможно, из его источников, если необходимо) только один раз, первый раз moda импортируется в любом месте, тогда все остальные Импорт модуля использует быстрый путь, включающий кэш (имена модулей отображения dict для объектов модуля, которые доступны в качестве sys.modules в случае необходимости ... если вы сначала import sys, конечно! -).

661
задан mwfearnley 29 June 2016 в 14:41
поделиться

12 ответов

dos2unix является утилитой командной строки, которая сделает, это, или :%s/^M//g будет, если Вы будете использовать Ctrl - v Ctrl - m для ввода ^M, или Вы можете :set ff=unix, и энергия сделает это для Вас.

Документы об установке 'формата файла' здесь , и энергия, Wiki имеет всестороннее страница на строке конечные преобразования .

Поочередно при перемещении файлов назад и вперед много Вы не могли бы хотеть преобразовывать их, а скорее делать :set ff=dos, таким образом, энергия будет знать, что это - файл DOS, и используйте соглашения DOS для окончаний строки.

1007
ответ дан Nikolay Fominyh 29 June 2016 в 14:41
поделиться

Можно использовать следующую команду:
:%s/^V^M//g
, где '^' означает использование CTRL ключ.

3
ответ дан Mwiza 29 June 2016 в 14:41
поделиться

Со следующей командой:

:%s/^M$//g 

Заставляют ^M появляться тип Ctrl V тогда Ctrl M . Ctrl V говорит Vim брать следующий символ, вводимый буквально.

5
ответ дан K.Dᴀᴠɪs 29 June 2016 в 14:41
поделиться

Измените окончания строки в представлении:

:e ++ff=dos
:e ++ff=mac
:e ++ff=unix

Это может также использоваться в качестве сохранения операции (: w один не сохранит использование окончаний строки, которые Вы видите на экране):

:w ++ff=dos
:w ++ff=mac
:w ++ff=unix

И можно использовать его от командной строки:

for file in *.cpp
do 
    vi +':w ++ff=unix' +':q' "$file"
done
254
ответ дан melpomene 29 June 2016 в 14:41
поделиться

Я предпочитаю использовать следующую команду:

:set fileformat=unix

можно также использовать mac или dos для соответствующего преобразования файла в макинтош или соглашение файла MS-DOS/MS Windows. И это ничего не делает, если файл уже находится в правильном формате.

Для получения дополнительной информации, посмотрите справку энергии:

:help fileformat
80
ответ дан Sylvain Defresne 29 June 2016 в 14:41
поделиться

:set fileformat=unix для преобразования от DOS до Unix.

16
ответ дан 29 June 2016 в 14:41
поделиться
:%s/\r+//g

В Vim, который разделяет все возвраты каретки и оставляет только новые строки.

19
ответ дан the Tin Man 29 June 2016 в 14:41
поделиться
13
ответ дан Alex Gartrell 29 June 2016 в 14:41
поделиться
:g/Ctrl-v Ctrl-m/s///

Ctrl M является символом \r, или возврат каретки, который добавляют окончания строки DOS. Ctrl V говорит энергии вставлять литерал символ M Ctrl в командной строке.

Взятый в целом, эта команда ничем заменяет весь \r, удаляя их из концов строк.

4
ответ дан K.Dᴀᴠɪs 29 June 2016 в 14:41
поделиться

Обычно есть команда dos2unix , которую вы можете использовать для этого, просто убедитесь, что вы прочитали руководство, так как версии GNU и BSD отличаются тем, как они обрабатывают аргументы.

Версия BSD:

dos2unix $FILENAME $FILENAME_OUT
mv $FILENAME_OUT $FILENAME

Версия GNU:

dos2unix $FILENAME

В качестве альтернативы вы можете создать свой собственный dos2unix с любым из предложенных здесь ответов, например:

function dos2unix(){
    [ "${!}" ] && [ -f "{$1}" ] || return 1;

    { echo ':set ff=unix';
      echo ':wq';
    } | vim "${1}";
}
1
ответ дан 22 November 2019 в 21:40
поделиться

Я обычно использую

:%s/\r/\r/g

, что кажется немного странным, но работает из-за способа, которым vim сопоставляет перевод строки. Мне тоже легче запомнить :)

156
ответ дан 22 November 2019 в 21:40
поделиться

dos2unix может напрямую изменять содержимое файла.

Вы можете напрямую использовать его в файле без необходимости временного перенаправления файла.

dos2unix input.txt input.txt

Вышеупомянутое использует предполагаемый US клавиатура. Используйте опцию - 437, чтобы использовать клавиатуру Великобритании.

dos2unix -437 input.txt input.txt
9
ответ дан 22 November 2019 в 21:40
поделиться