Список полезных команд Python для Vim?

Я искал быстрый способ автоматического форматирования/печати JSON в Vim на днях и нашел эту замечательную небольшую команду в Stack Overflow: :%!python -m json.tool

Это послало меня на поиск списка других инструментов Python, чтобы печатать обычные веб файлы, но я не мог найти многого. Есть ли хороший ресурс/список инструментов Python, которые они находят особенно полезными для очистки плохо отформатированных веб-материалов внутри Vim (например, HTML, XML, JavaScript и т.д.)?

+16
источник поделиться
5 ответов

Python

Вы просто ищете ресурс для однострочных Python? Вы можете просмотреть документацию по стандартной библиотеке Python, чтобы найти больше вдохновения.

Или просто google "python one-liners json.tool", чтобы найти дополнительные ресурсы. Например, это сообщение Reddit: Предложение для блоггера Python: выяснить, что такое все функции stdlib main, и документировать его

Командная строка

Vim поддерживает не только Python (например, HTML Tidy, как предложил Кейт). Любой инструмент, который может принимать трубный/стандартный вход, хорошо интегрируется с Vim.

Команда % просто выбирает диапазон, содержащий весь файл, и ! фильтры, которые распространяются через внешнюю программу.

См. :help :% и :help :!

+5
источник

Для файлов XHTML и XML вы можете использовать опрятный.

:%!tidy -i -asxhtml -utf8

:`<,`>!tidy -i -xml -utf8

Последний работает с визуальным выбором.

+5
источник

У Vim есть команда, чтобы сделать это, = (равно), как в ggvG=, будет повторно указывать весь файл. Попробуйте :help = для получения дополнительной информации о том, как использовать функции и внешние программы с помощью =. Конфигурация по умолчанию использует внутренние правила отступов, которые работают для большинства типов файлов.

+2
источник

!autopep8 -i %, кажется, отлично работает в vim. Переключатель -i должен переписать существующий файл на место. Используйте more @ autopep8 --help.

Для этого есть плагин vim, если вы действительно думаете о том, что являетесь сильным пользователем. Вне vim вы можете проверить его с помощью autopep8 -diff {filename} or autopep8 {filename}.

0
источник

Есть множество хороших инструментов, которые могут конвертировать текст между двумя форматами:

  • par: для жесткой упаковки строк.
  • pandoc: для HTML, LaTeX, rst и Markdown
  • autopep8: для разбора кода Python в AST и выплевывать его как совместимый с pep8.

    ...

Vim предназначен для использования таких утилит с помощью мощных настроек formatprg. Это по умолчанию отображается на gq-оператор. Он хорошо работает с движениями Vim, текстовыми объектами Vim, выборами и т.д.

Например, я использую параметр ниже для моих файлов Python

au FileType python setlocal formatprg=autopep8\ --indent-size\ 0\ -

John MacFarlne хорошая статья о создании специализированного script с использованием pandoc, который вы могли бы вставить в свой vimrc.

0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос