Plugins Vim recommandés pour le codage JavaScript? [fermé]

125

Je suis nouveau sur JS & Vim. Quels plugins m'aideraient à écrire du code Javascript?

Tarek Saied
la source
6
Pour donner plus de clarté à la question, et pour aider l'OP dans son anglais pour les futurs messages ... Il devrait lire: "Salut, je suis nouveau dans JS & Vim. Quels plugins m'aideraient à écrire du code Javascript?" Vous pouvez dire "Je suis nouveau dans Javascript et vim". Vous pouvez utiliser "what is" pour le singulier, par exemple "What is a_plugin that would help me ..." ou vous pouvez utiliser "which" pour le pluriel comme ceci: " Which_plugins would help me ...". Notez également qu'au lieu de "plugins is ", vous devriez utiliser "plugins would " car c'est hypothétique. J'espère que ça aide :-)
hendrixski
3
@hendrixski - votez pour la rouvrir.
ocodo
8
Question la plus constructive et non constructive jamais.
Vladislav Zorov le
8
J'apprécie beaucoup la façon dont cette question "non constructive" m'a aidé à améliorer beaucoup mon flux de travail.
MaiaVictor
Puisque la question est (injustement IMO) close, je vais juste ajouter un commentaire ici: il y a un front-end à base d'électrons pour NeoVim avec l'autocomplétion du serveur de langage dactylographié prêt à l'emploi (fonctionne aussi avec vanilla JS!): Onivim.io . C'est encore un peu difficile sur les bords, mais je l'utilise comme pilote quotidien depuis quelques semaines maintenant et je n'ai pas eu trop de problèmes. Il a une très bonne communauté autour de lui, et il est en développement très lourd, donc j'attends de bonnes choses de lui dans le futur! Divulgation complète: je fais un don mensuel au projet et je prévois de contribuer à l'avenir.
Parker Ault

Réponses:

116

Vérification de la syntaxe / peluchage

Il existe un moyen très simple d'intégrer JSLint ou le jshint.com géré par la communauté (ce qui est bien meilleur IMO) avec Vim en utilisant le plugin Syntastic Vim. Voir mon autre article pour plus d'informations.

Navigation dans le code source / liste de balises

Il y a aussi une façon très soignée pour ajouter un tag-liste à l' aide de Mozilla de DoctorJS (anciennement jsctags ), qui est également utilisé dans Cloud9 IDE de Ace éditeur en ligne .

  1. Installez les paquets suivants en utilisant votre package-manager favori (Ubuntu apt-get, Mac à la maisonbrew , etc.):
    1. exuberant-ctags
      • REMARQUE: après l'installation, assurez-vous que l'exécution s'exécute ctagsréellement exuberant-ctagset non le système d'exploitation préinstallé ctags. Vous pouvez le découvrir en exécutant ctags --version.
    2. node (Node.js)
  2. Cloner DoctorJSdepuis github:git clone https://github.com/mozilla/doctorjs.git
  3. Allez dans DoctorJSdir et make install(vous aurez également besoin de l' makeapplication installée, mais c'est très basique).
    • Il y a quelques bugs avec l'installation du plugin, make installcela ne fait pas l'affaire pour le moment. Pour l'instant, j'ajoute simplement le répertoire du bin/dépôt à mon $ PATH à la place. Voir le GitHub de DoctorJS et les pages des problèmes pour plus d'informations.
  4. Installez le plugin TagBar Vim ( NOTE: c'est TagBar, pas le vieux TagList!).
  5. PROFIT. :)

Nouveau projet - Tern.js

DoctorJS est actuellement mort . Il y a un nouveau projet prometteur appelé tern.js . Il est actuellement en version bêta précoce et devrait éventuellement le remplacer.

Il existe un projet ramitos / jsctags qui utilise tern comme moteur. Juste npm install -gcela, et tagbar l'utilisera automatiquement pour les fichiers javascript.

Ory Band
la source
5
+1 pour TagBar (n'était au courant que de TagList!)
RobM
9
Actuellement, doctorjs vous oblige à cloner récursif comme spécifié dans ce bogue , git clone --recursive https://github.com/mozilla/doctorjs.gitpuis à faire en sorte que l'installation fonctionne
Andy Ray
1
doctorjs sous Windows: baumichel.blogspot.ca/2011/11/… ajout de types de fichiers supplémentaires à TagBar: github.com/majutsushi/tagbar/wiki
Andrew
6
Avant de faire l' étape 3, en cd doctorjs et faire: git submodule init && git submodule update. Ensuite, faites l'étape 3.
glortho
2
La commande de brassage est en faitbrew install ctags-exuberant
sym3tri
17

snipMate émule le système d'insertion de TextMate et est livré avec un tas d'extraits JS utiles (entre autres) par défaut. Il est extrêmement facile d'ajouter le vôtre.

javaScriptLint vous permet de valider votre code par rapport à jsl.

Vous pouvez également trouver une variété de fichiers de syntaxe JavaScript sur vim.org. Essayez-les et voyez lequel fonctionne le mieux pour vous et votre style de codage.

L'omnicomplete natif ( ctrlx- ctrlo) fonctionne très bien pour moi. Vous pouvez le rendre plus dynamique avec autoComplPop , mais cela peut parfois être ennuyeux.

modifier, en réponse au commentaire de tarek11011:

acp ne fonctionne pas pour JavaScript par défaut, vous devez le modifier un peu. Voici comment je l'ai fait (sale hack, je suis toujours un Vim noob):

Dans vim-autocomplpop / plugin / acp.vim j'ai ajouté phpetjavascript (et actionscript) à behavspour que cela ressemble à ça:

let behavs = {
    \   '*'            : [],
    \   'ruby'         : [],
    \   'python'       : [],
    \   'perl'         : [],
    \   'xml'          : [],
    \   'html'         : [],
    \   'xhtml'        : [],
    \   'css'          : [],
    \   'javascript'   : [],
    \   'actionscript' : [],
    \   'php'          : [],
    \ }

Un peu en dessous, il y a une série de blocs de code qui ressemblent à ça:

"---------------------------------------------------------------------------
call add(behavs.ruby, {
    \   'command' : "\<C-x>\<C-o>",
    \   'meets'   : 'acp#meetsForRubyOmni',
    \   'repeat'  : 0,
    \ })

J'ai dupliqué celui-ci et l'ai édité un peu pour ressembler à ça:

"---------------------------------------------------------------------------
call add(behavs.javascript, {
    \   'command' : "\<C-x>\<C-o>",
    \   'meets'   : 'acp#meetsForRubyOmni',
    \   'repeat'  : 0,
    \ })

et a fait de même pour actionscript et php.

Si vous voulez éditer JS / CSS dans un document HTML, vous pouvez faire: définir ft = html.css.javascript dans la ligne de commande de Vim pour faire ctrlx- ctrlofonctionner comme prévu sur les noms de méthode / propriétés dans les blocs JS et les propriétés / valeurs dans les blocs CSS. Cependant, cette approche a aussi ses inconvénients (indentation bizarre…).

romainl
la source
Comment avez-vous fait ces frappes super cool?
Maxim Sloyko
1
Haha, c'est <kbd> </kbd>. Les navigateurs n'ont généralement pas de style par défaut pour cette balise, félicitations à l'équipe SO pour le travail supplémentaire.
romainl
merci romainl, mais j'ai un problème avec autoComplPop, il ne fonctionne qu'avec le fichier html sans js et css et php
Tarek Saied
Comme beaucoup de plugins Vim, acp est très sensible aux types de fichiers. Si le type de fichier du tampon est "html", ni acp ni omni complete ne fonctionneront pour le JS / CSS / PHP intégré. Et je vais éditer ma réponse, pas assez d'options d'édition / d'espace ici.
romainl
Vous préférerez peut-être utiliser la branche de maintenance actuelle de snipMate que Rok Garbas & co. mettre ensemble.
thisgeek
8

Ce plugin est également utile: https://github.com/maksimr/vim-jsbeautify . Il fournit un formatage automatique complet pour javascript. Une touche et votre code est magnifique. Cela peut également être utile lors du collage d'extraits de code. Il utilise le populaire js-beautifier, qui peut également être trouvé en tant qu'application en ligne. Ce dernier peut être trouvé ici: http://jsbeautifier.org/ .

Chiel ten Brinke
la source
3
J'ai écrit un plugin de mise en forme automatique générale pour vim qui intègre le js-beautifier et plus encore. Vérifiez ici: github.com/Chiel92/vim-autoformat
Chiel ten Brinke
prettitier - le meilleur
Alex Shwarc
6

Je n'utilise qu'un seul plugin vim spécifique à js - jslint.vim - https://github.com/hallettj/jslint.vim qui valide votre code avec les règles jslints et vous donne également des erreurs de syntaxe.

Scott
la source
merci mais je pense que j'ai un problème à regarder img69.imageshack.us/img69/7629/11142565.png
Tarek Saied
Hm, sur Windows, il y a des instructions spécifiques que vous devrez suivre, cela nécessite un interpréteur javascript. Je n'ai pas essayé de l'installer sur Windows, mais les instructions d'installation sont un peu en bas de la page dans le README, désolé, je ne peux pas être plus utile.
Scott
3

Pour corriger l'indentation et le formatage automatique (Ctrl =): JavaScript Indent

Pour définir la largeur d'indentation, ajoutez un javascript.vimfichier dans le répertoire ~ / .vim / ftplugin avec le contenu suivant (pour une indentation à deux espaces):

 setl sw=2 sts=2 et
Evgenii
la source
dans ~/.vimrc:autocmd FileType javascript setlocal sw=2 ts=2 sts=2
JuanPablo