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

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

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

5 ответов

Решение

питон

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

Или просто Google "Python One-Liners JSON.tool", чтобы найти дополнительные ресурсы. Например, этот пост в Reddit: предложение для блоггера Python: выясните, каковы все основные функции stdlib, и запишите его

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

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

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

Увидеть :help :% а также :help :!

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

:%!tidy -i -asxhtml -utf8

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

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

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

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

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

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

  1. номинал: для жесткого переноса строк.
  2. pandoc: для HTML, LaTeX, RST и Markdown
  3. autopep8: для синтаксического анализа кода Python в AST и вывода его как pep8-совместимого.

    ...

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

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

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

У Джона МакФарлна есть хорошая статья о создании специализированного скрипта с использованием pandoc, который вы можете вставить в свой vimrc.

Другие вопросы по тегам