7
votes

Syntaxe JavaScript et indentation dans Vim

Je sais que cela a été demandé auparavant, mais j'ai du mal à obtenir une indentation javascript pour fonctionner correctement dans Vim.

J'ai essayé d'installer ce plugin: p>

http://www.vim.org/scripts/script.php?script_id=3081 P>

et je reçois ce comportement: p> xxx pré>

ceci est mon VIMRC: p> xxx pré>

je l'ai également essayé avec ceci Plugin: P>

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

mais cela me donne ceci: p>

if (x == 1) {
        alert("nice");
}


0 commentaires

3 Réponses :


4
votes

Avez-vous essayé cela dans votre .vimrc xxx

éditer également le "plugin" JavaScript que j'utilise pour VIM est javascript.vim qui remplace le fichier de syntaxement de Vim JavaScript par défaut.

Peu importe les plug-ins que vous utilisez, indenter dans Vim est généralement Pretty Bad, et est une plainte commune avec les utilisateurs de Vim, en particulier avec JavaScript. Il n'y a pas de solution parfaite, qui est étrange compte tenu de la puissante extensibilité de Vim.


3 commentaires

Je travaille à Vim toute la journée sur Javascript et ne semble pas avoir de véritables problèmes avec l'indentation JavaScript. Regardez mes dotfiles Vim sur github -> https://github.com/shaanestillwell/dotvim


Bien que cela soit marqué comme la bonne réponse, Stackoverflow.com/a/9896760/209864 a fonctionné mieux pour moi.


@Shaanestillwell Les autocmds par langue sont droits au point.



7
votes

Je suis venu ici de Google et je n'étais pas satisfait du fichier d'indent de Yi Zhao comme suggéré ci-dessus. N'était toujours pas attrapé des fonctions imbriquées de mienne.

J'ai demandé autour de Twitter et j'ai suggéré https://github.com/pangloss/vim-javascript < / a> - avec lequel je suis beaucoup plus heureux.

hth,


1 commentaires

Merci beaucoup! Vous avez raison ... le Pangloss un que vous avez suggéré est meilleur que le Yi Zhao et Jelera Alternatives.



14
votes

Vim Wiki explique comment configurer une indentation spécifique à la filetype et c'est assez simple: http: //vim.wikia.com/wiki/indenting_source_code#different_settings_for_didifferent_file_types

Le moyen le plus simple est de mettre Autocmd filetype code> instructions dans votre fichier .vIMRC code>. Vous pouvez spécifier une indentation pour chaque type de fichier séparément: p>

set tabstop=4
set shiftwidth=4

autocmd FileType javascript setlocal shiftwidth=2 tabstop=2                                                   
autocmd FileType html setlocal shiftwidth=2 tabstop=2


0 commentaires