Список полезных команд Python для Vim?
Я искал быстрый способ автоматического форматирования/печати JSON в Vim на днях и нашел эту замечательную небольшую команду в Stack Overflow: :%!python -m json.tool
Это послало меня на поиск списка других инструментов Python, чтобы печатать обычные веб файлы, но я не мог найти многого. Есть ли хороший ресурс/список инструментов Python, которые они находят особенно полезными для очистки плохо отформатированных веб-материалов внутри Vim (например, HTML, XML, JavaScript и т.д.)?
Ответы
Ответ 1
Python
Вы просто ищете ресурс для однострочных Python? Вы можете просмотреть документацию по стандартной библиотеке Python, чтобы найти больше вдохновения.
Или просто google "python one-liners json.tool", чтобы найти дополнительные ресурсы. Например, это сообщение Reddit: Предложение для блоггера Python: выяснить, что такое все функции stdlib main, и документировать его
Командная строка
Vim поддерживает не только Python (например, HTML Tidy, как предложил Кейт). Любой инструмент, который может принимать трубный/стандартный вход, хорошо интегрируется с Vim.
Команда %
просто выбирает диапазон, содержащий весь файл, и !
фильтры, которые распространяются через внешнюю программу.
См. :help :%
и :help :!
Ответ 2
Для файлов XHTML и XML вы можете использовать опрятный.
:%!tidy -i -asxhtml -utf8
:`<,`>!tidy -i -xml -utf8
Последний работает с визуальным выбором.
Ответ 3
У Vim есть команда, чтобы сделать это, =
(равно), как в ggvG=
, будет повторно указывать весь файл. Попробуйте :help =
для получения дополнительной информации о том, как использовать функции и внешние программы с помощью =
. Конфигурация по умолчанию использует внутренние правила отступов, которые работают для большинства типов файлов.
Ответ 4
!autopep8 -i %
, кажется, отлично работает в vim
. Переключатель -i
должен переписать существующий файл на место. Используйте more @ autopep8 --help
.
Для этого есть плагин vim
, если вы действительно думаете о том, что являетесь сильным пользователем. Вне vim
вы можете проверить его с помощью autopep8 -diff {filename} or autopep8 {filename}
.
Ответ 5
Есть множество хороших инструментов, которые могут конвертировать текст между двумя форматами:
Vim предназначен для использования таких утилит с помощью мощных настроек formatprg
. Это по умолчанию отображается на gq-оператор. Он хорошо работает с движениями Vim, текстовыми объектами Vim, выборами и т.д.
Например, я использую параметр ниже для моих файлов Python
au FileType python setlocal formatprg=autopep8\ --indent-size\ 0\ -
John MacFarlne хорошая статья о создании специализированного script с использованием pandoc, который вы могли бы вставить в свой vimrc.