Лучше всего импортировать каждый модуль, который определяет нужные вам идентификаторы, и использовать эти идентификаторы в качестве квалифицированных по имени модуля; Я рекомендую использовать from
только тогда, когда то, что вы импортируете, является модулем изнутри пакета. Вопрос часто обсуждался на SO.
Импортирование модуля, скажем moda
, из многих модулей (например, modb
, modc
, modd
, ...), которые нуждаются в одном или больше идентификаторов moda
определяет, не замедляет работу: байт-код moda
загружается (и, возможно, из его источников, если необходимо) только один раз, первый раз moda
импортируется в любом месте, тогда все остальные Импорт модуля использует быстрый путь, включающий кэш (имена модулей отображения dict для объектов модуля, которые доступны в качестве sys.modules
в случае необходимости ... если вы сначала import sys
, конечно! -).
dos2unix является утилитой командной строки, которая сделает, это, или :%s/^M//g
будет, если Вы будете использовать Ctrl - v Ctrl - m для ввода ^M, или Вы можете :set ff=unix
, и энергия сделает это для Вас.
Документы об установке 'формата файла' здесь , и энергия, Wiki имеет всестороннее страница на строке конечные преобразования .
Поочередно при перемещении файлов назад и вперед много Вы не могли бы хотеть преобразовывать их, а скорее делать :set ff=dos
, таким образом, энергия будет знать, что это - файл DOS, и используйте соглашения DOS для окончаний строки.
Можно использовать следующую команду:
:%s/^V^M//g
, где '^' означает использование CTRL ключ.
Со следующей командой:
:%s/^M$//g
Заставляют ^M
появляться тип Ctrl V тогда Ctrl M . Ctrl V говорит Vim брать следующий символ, вводимый буквально.
Измените окончания строки в представлении:
: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
Я предпочитаю использовать следующую команду:
:set fileformat=unix
можно также использовать mac
или dos
для соответствующего преобразования файла в макинтош или соглашение файла MS-DOS/MS Windows. И это ничего не делает, если файл уже находится в правильном формате.
Для получения дополнительной информации, посмотрите справку энергии:
:help fileformat
:set fileformat=unix
для преобразования от DOS до Unix.
:%s/\r+//g
В Vim, который разделяет все возвраты каретки и оставляет только новые строки.
от: http://vim.wikia.com/wiki/Change_end-of-line_format_for_dos-mac-unix
[Esc]: %s/\r$//
:g/Ctrl-v Ctrl-m/s///
Ctrl M является символом \r
, или возврат каретки, который добавляют окончания строки DOS. Ctrl V говорит энергии вставлять литерал символ M Ctrl в командной строке.
Взятый в целом, эта команда ничем заменяет весь \r
, удаляя их из концов строк.
Обычно есть команда 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}";
}
Я обычно использую
:%s/\r/\r/g
, что кажется немного странным, но работает из-за способа, которым vim сопоставляет перевод строки. Мне тоже легче запомнить :)
dos2unix
может напрямую изменять содержимое файла.
Вы можете напрямую использовать его в файле без необходимости временного перенаправления файла.
dos2unix input.txt input.txt
Вышеупомянутое использует предполагаемый US клавиатура. Используйте опцию -
437, чтобы использовать клавиатуру Великобритании.
dos2unix -437 input.txt input.txt