Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

230
Vistas
Javascript con sangría automática en vim, desde código de una sola línea hasta código con sangría completa

Estoy usando vim para codificar, es decir, en javascript. Me encantaría poder sangrar automáticamente el código javascript. Mi principal caso de uso es poder saltar automáticamente de un código javascript de una sola línea a un código bastante impreso con sangría completa (tal como lo haría https://beautifier.io/ ).

A pesar de buscar ayuda en Google y SO, no pude encontrar ninguna pregunta relacionada con la sangría automática en el caso específico donde el código para sangrar es de una sola línea.

Ejemplo de archivo de entrada:

 import { BASE_URL } from "@/constants/config"; import { request } from "@/utils/request"; export const FOOTER_ENDPOINTS = { links: `${ BASE_URL} api/footer/links/`, } ; class Footer { async fetchLinks() { const { data } = await request({ url: FOOTER_ENDPOINTS.links, }); return data; } } export const FooterService = new Footer();

Estoy esperando el siguiente resultado:

 import { BASE_URL } from "@/constants/config"; import { request } from "@/utils/request"; export const FOOTER_ENDPOINTS = { links: `${BASE_URL}api/footer/links/`, }; class Footer { async fetchLinks() { const { data } = await request({ url: FOOTER_ENDPOINTS.links, }); return data; } } export const FooterService = new Footer();

Hasta ahora, he probado sin éxito los comandos =G y gg=G , así como :Autoformat from vim-autoformat plugin y pangloss/vim-javascript plugin.

La mejor pista que tengo es usar maksimr/vim-jsbeautify pero el resultado no es tan "bonito impreso" como hubiera esperado. ¿Tal vez algunas propiedades de editorconfig que no conozco podrían ayudar a agregar saltos de línea y evitar que las importaciones se interrumpan cuando no son demasiado largas?

 import { BASE_URL } from "@/constants/config"; import { request } from "@/utils/request"; export const FOOTER_ENDPOINTS = { links: `${BASE_URL}api/footer/links/`, }; class Footer { async fetchLinks() { const { data } = await request({ url: FOOTER_ENDPOINTS.links, }); return data; } } export const FooterService = new Footer();

BONIFICACIÓN: Sería increíble si la solución también pudiera aplicar sangría automática a entidades similares a dictados, como javascript o json, por ejemplo.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Siendo el editor de texto generalista que es, existe un límite para lo que Vim puede hacer por sí solo con tipos de archivos específicos.

Fuera de la caja, Vim es incapaz de hacer lo que le pides, pero te permite usar herramientas externas que lo hacen.

Lo que necesitas averiguar es:

  1. qué herramienta externa usar,
  2. cómo configurarlo para obtener el resultado deseado,
  3. cómo integrarlo con Vim.

js-embellecer

La aplicación web que menciona usa js-beautify , por lo que, si está satisfecho con la forma en que la aplicación web formatea su código, entonces debería probar js-beautify .

El primer problema, aquí, es que la aplicación web en realidad no formatea su muestra de la forma en que afirma que lo hace. Sale esto:

 import { BASE_URL } from "@/constants/config"; import { request } from "@/utils/request"; export const FOOTER_ENDPOINTS = { links: `${ BASE_URL} api/footer/links/`, }; class Footer { async fetchLinks() { const { data } = await request({ url: FOOTER_ENDPOINTS.links, }); return data; } } export const FooterService = new Footer();

que resulta ser idéntico a lo que js-beautify local genera de forma predeterminada.

Si esa aplicación web realmente puede formatear su código de la manera que desea, entonces debe probar varias configuraciones hasta que esté satisfecho y luego pasar a la fase de configuración.

Pero hay un segundo problema: acabo de pasar unos minutos jugando con la configuración y me temo que tengo que señalar que esta declaración:

tal como lo haría https://beautifier.io/

es evidentemente falso. La aplicación web no puede hacer su formato ideal y es muy probable que el js-beautify subyacente esté limitado de manera similar.

Así que ha regresado al paso n.º 1: averiguar qué herramienta externa usar... que está fuera del alcance de este sitio.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda