gvim - vim python indent
¿Una lista de comandos de Python útiles para Vim? (5)
Estaba buscando una forma rápida de autoformatear / imprimir con JSON en Vim el otro día y encontré este pequeño gran comando en Stack Overflow :%!python -m json.tool
Eso me envió a buscar una lista de otras herramientas de Python para imprimir archivos web comunes, pero no pude encontrar mucho. ¿Hay algún buen recurso / lista de herramientas de Python que encuentren particularmente útiles para limpiar material web con formato incorrecto dentro de Vim (por ejemplo, HTML, XML, JavaScript, etc.)?
Hay un montón de buenas herramientas que pueden convertir texto entre los dos formatos:
- Par: para envoltura de línea dura.
- pandoc: para HTML, LaTeX, rst, y Markdown
autopep8: para analizar el código Python en un AST y escupirlo como compatible con pep8.
...
Vim está diseñado para hacer uso de tales utilidades por las potentes configuraciones de formatprg
. Que por defecto se asigna al operador gq. Funciona bien con movimientos Vim, objetos de texto Vim, selecciones, etc.
Por ejemplo, uso la siguiente configuración para mis archivos de Python
au FileType python setlocal formatprg=autopep8/ --indent-size/ 0/ -
John MacFarlne tiene un buen artículo sobre la creación de un guión especializado utilizando pandoc que podría incluir en su vimrc.
Para archivos XHTML y XML puede usar tidy.
:%!tidy -i -asxhtml -utf8
:`<,`>!tidy -i -xml -utf8
El último funciona en selecciones visuales.
Vim tiene un comando para hacerlo, =
(igual), como en ggvG=
todo el archivo. Pruebe :help =
para obtener más información sobre cómo usar funciones y programas externos con =
. La configuración predeterminada utiliza reglas de sangría internas que funcionan para la mayoría de los tipos de archivos.
!autopep8 -i %
parece funcionar bien en vim
. El -i
es sobreescribir el archivo existente en su lugar. Use more @ autopep8 --help
.
Hay un complemento de vim
para esto si realmente estás pensando en ser un usuario avanzado. Fuera de vim
puede probarlo con autopep8 -diff {filename} or autopep8 {filename}
.
Pitón
¿Estás buscando un recurso para Python one-liners? Puedes buscar en la documentación de la biblioteca estándar de Python para encontrar más inspiración.
O simplemente busque en Google "python one-liners json.tool" para encontrar recursos adicionales. Por ejemplo, esta publicación de Reddit: Sugerencia para un blogger de Python: descubra cuál es la funcionalidad principal de stdlib y documéntela
Línea de comando
Vim admite más que Python (por ejemplo, HTML Tidy, como sugirió Keith). Cualquier herramienta que pueda aceptar entradas de tubería / estándar se integrará bien con Vim.
El comando %
simplemente selecciona un rango que contiene el archivo completo, y !
Filtros que van desde un programa externo.
Ver :help :%
y :help :!