Список полезных команд 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}
,
Есть множество хороших инструментов, которые могут конвертировать текст между двумя форматами:
- номинал: для жесткого переноса строк.
- pandoc: для HTML, LaTeX, RST и Markdown
autopep8: для синтаксического анализа кода Python в AST и вывода его как pep8-совместимого.
...
Vim предназначен для использования таких утилит мощным formatprg
Настройки. Это по умолчанию сопоставлено с оператором gq. Он хорошо работает с движениями Vim, текстовыми объектами Vim, выделениями и т. Д.
Например, я использую настройки ниже для моих файлов Python
au FileType python setlocal formatprg=autopep8\ --indent-size\ 0\ -
У Джона МакФарлна есть хорошая статья о создании специализированного скрипта с использованием pandoc, который вы можете вставить в свой vimrc.