Список полезных команд Python для Vim? - PullRequest
18 голосов
/ 11 августа 2011

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

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

Ответы [ 5 ]

5 голосов
/ 11 августа 2011

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

:%!tidy -i -asxhtml -utf8

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

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

5 голосов
/ 12 августа 2011

Python

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

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

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

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

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

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

2 голосов
/ 11 августа 2011

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

0 голосов
/ 29 июня 2014

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

  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.

0 голосов
/ 09 июня 2014

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

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

...