plug node linter for development javascript vim

node - ¿Cómo corrijo la indentación incorrecta de Javascript en línea en Vim?



vim jsx (8)

En caso de que alguien venga aquí, tenga en cuenta que el vim-javascript de pangloss en vim-javascript me ayudó hasta ahora, es decir, Vim 7.4. Y las soluciones anteriores de oligofren y Charles Roper no lo hicieron.

Parece que no puedo obtener sangrado Javascript en línea correctamente en Vim. Considera lo siguiente:

$(document).ready(function() { // Closing brace correctly indented $("input").focus(function() { $(this).closest("li").addClass("cur-focus"); }); // <-- I had to manually unindent this // Closing brace incorrectly indented $("input").blur(function() { $(this).closest("li").removeClass("cur-focus"); }); // <-- This is what it does by default. Argh! });

Vim parece insistir en sangrar automáticamente el corsé de cierre que se muestra en el segundo caso allí. Hace lo mismo si vuelvo a sangrar todo el archivo. ¿Cómo hago para que sangre automáticamente utilizando el estilo de sangría JS más estándar visto en el primer caso?


La mayoría de estas respuestas son de 2009 y, francamente, están desactualizadas.

vim-javascript es mucho más reciente y está más actualizado que el script de Preston.

La instalación es un poco más complicada si aún no ha comenzado a usar Vundle , pero no parece sufrir los problemas de las alternativas.


La secuencia de comandos de sangría Javascript más completa y sin errores es la de Preston Koprivica . La llamada secuencia de comandos OOP que está en la respuesta propuesta tiene errores graves, y no sangra correctamente el código que tiene corchetes.


Los scripts mencionados anteriormente no dan formato a la sintaxis de cierre que a menudo se usa en jQuery correctamente:

$(function() { // only one level of indentation, not two });

Este script funciona mejor para mí: http://www.vim.org/scripts/script.php?script_id=2765


Suponiendo que el archivo de sintaxis tiene una buena sangría para el guión java, resalte visualmente el bloque y presione =. Esto funciona para Java, así que esperaría que hiciera algo medio decente para el script java. Los resultados probablemente también dependan de la configuración de tabstop, expandtab y quizás shiftwidth.

gq también es útil, formatea líneas en lugar de sangrarlas.


Tuve el mismo problema. Este es el mejor de todos los scripts de sangría de Javascript:

http://www.vim.org/scripts/script.php?script_id=1840

Requiere el complemento IndentAnything

http://www.vim.org/scripts/script.php?script_id=1839

Como una ventaja adicional, escribí este guion de sangrado que hará que los bloques Javascript sean bastante bonitos. Utiliza el indenter html predeterminado de forma predeterminada (y el de IndentAnything cuando está dentro de un bloque Javascript)

http://gist.github.com/371902



tal vez una combinación de estas configuraciones debe estar en su archivo VIMRC.

syntax on set syn=auto set showmatch filetype on filetype plugin on filetype indent on set tabstop=4 set softtabstop=4 set shiftwidth=4 set expandtab