Plugin Vim consigliati per la codifica JavaScript? [chiuso]


125

Sono nuovo di JS e Vim. Quali plugin mi aiuterebbero a scrivere codice Javascript?


6
Per dare più chiarezza alla domanda e aiutare l'OP nel loro inglese per i post futuri ... Dovrebbe essere indicato: "Ciao, sono nuovo di JS e Vim. Quali plugin mi aiuterebbero a scrivere codice Javascript?" Puoi dire "Sono nuovo di Javascript e vim". Puoi usare "what is" per singolare, quindi ad esempio "What is a_plugin che mi aiuterebbe ..." oppure puoi usare "quale" per plurale come questo: " Which_plugins mi aiuterebbe ...". Si noti inoltre che, invece di "plugins è " si dovrebbe usare "i plugin sarebbe " perché è un ipotetico. Spero che aiuti :-)
— Hendrixski,

3
@hendrixski - vota per riaprirlo.
— ottobre

8
La domanda non costruttiva più costruttiva di sempre.
— Vladislav Zorov, il

8
Mi piace molto come questa domanda "non costruttiva" mi abbia aiutato a migliorare molto il mio flusso di lavoro.
— MaiaVictor

Poiché la domanda è (ingiustamente IMO) chiusa, aggiungerò un commento qui: c'è un front-end basato su elettroni per NeoVim con il completamento automatico del server del linguaggio dattiloscritto pronto all'uso (funziona anche con JS vaniglia!): Onivim.io . È ancora un po 'agitato attorno ai bordi, ma lo uso come autista quotidiano da alcune settimane e non ho avuto troppi problemi. Ha una comunità davvero buona, ed è in fase di sviluppo molto pesante, quindi mi aspetto cose positive da esso in futuro! Divulgazione completa: faccio una donazione mensile al progetto e pianifico di contribuire in futuro.
— Parker Ault,

Risposte:


116

Sintassi Verifica / Linting

Esiste un modo molto semplice per integrare JSLint o jshint.com guidato dalla comunità (che è molto meglio IMO) con Vim usando il plugin Syntastic Vim. Vedi il mio altro post per maggiori informazioni.

Navigazione codice sorgente / Elenco tag

C'è anche un modo molto ordinato per aggiungere tag-messa in vendita utilizzando Mozilla DoctorJS (ex jsctags ), che viene utilizzato anche in Cloud9 IDE s' online editor Ace .

  1. Installare i seguenti pacchetti utilizzando il pacchetto-manager preferito (di Ubuntu apt-get, Mac di casabrew , etc.):
    1. exuberant-ctags
      • NOTA: dopo l'installazione assicurarsi che l'esecuzione sia ctagseffettivamente eseguita exuberant-ctagse non preinstallata del sistema operativo ctags. Puoi scoprirlo eseguendo ctags --version.
    2. node (Node.js)
  2. Clone DoctorJSda github:git clone https://github.com/mozilla/doctorjs.git
  3. Vai all'interno di DoctorJSdir e make install(Avrai anche bisogno makedell'app installata, ma questo è molto semplice).
    • Ci sono alcuni bug con l'installazione del plugin, make installper il momento non fa il trucco. Per ora aggiungo invece la bin/dir del repo al mio $ PATH. Vedi GitHub e le pagine dei problemi di DoctorJS per maggiori informazioni.
  4. Installa il plugin TagBar Vim ( NOTA: è TagBar, non il vecchio famigerato TagList!).
  5. PROFITTO. :)

Nuovo progetto - Tern.js

DoctorJS è attualmente morto . C'è un nuovo progetto promettente chiamato tern.js . È attualmente in fase beta iniziale e alla fine dovrebbe sostituirlo.

Esiste un progetto ramitos / jsctags che utilizza la sterna come motore. Basta npm install -ge tagbar lo userà automaticamente per i file JavaScript.


5
+1 per TagBar (era a conoscenza solo di TagList!)
— RobM,

9
Attualmente doctorjs richiede di clonare ricorsiva, come specificato in questo bug , git clone --recursive https://github.com/mozilla/doctorjs.gite quindi make install dovrebbe funzionare
— Andy Ray

1
doctorjs su Windows: baumichel.blogspot.ca/2011/11/… aggiunta di altri tipi di file a TagBar: github.com/majutsushi/tagbar/wiki
— Andrew

6
Prima di fare il punto 3, cd nella doctorjs e fare questo: git submodule init && git submodule update. Quindi
— esegui il

2
Il comando brew è in realtàbrew install ctags-exuberant
— sym3tri

17

snipMate emula il ⇥sistema di inserimento di TextMate e viene fornito con un mucchio di utili snippet JS (tra gli altri) per impostazione predefinita. È estremamente facile aggiungerne uno tuo.

javaScriptLint ti consente di convalidare il tuo codice contro jsl.

Inoltre puoi trovare una varietà di file di sintassi JavaScript su vim.org. Provali e vedi quale funziona meglio per te e il tuo stile di programmazione.

L'omnicomplete nativo ( ctrlx- ctrlo) funziona molto bene per me. Puoi renderlo più dinamico con autoComplPop , ma a volte può essere fastidioso.

modifica, in risposta al commento di tarek11011:

acp non funziona per JavaScript per impostazione predefinita, devi modificarlo un po '. Ecco come l'ho fatto (hack sporco, sono ancora un Vim noob):

In vim-autocomplpop / plugin / acp.vim ho aggiunto phpe javascript(e actionscript) a in behavsmodo che appaia così:

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

Un po 'sotto, c'è una serie di blocchi di codice che assomigliano a questo:

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

Ho duplicato questo e l'ho modificato un po 'per assomigliare a questo:

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

e ha fatto lo stesso per ActionScript e PHP.

Se si desidera modificare JS / CSS all'interno di un documento HTML che si può fare: set ft = html.css.javascript nella linea di comando di Vim per rendere ctrlx- ctrloil lavoro come previsto dal metodo / proprietà nomi in blocchi di JS e le proprietà / valori in blocchi CSS. Tuttavia, anche questo approccio ha i suoi svantaggi (strano rientro ...).


Come hai fatto quelle sequenze di tasti dall'aspetto accattivante?
— Maxim Sloyko,

1
Haha, è <kbd> </kbd>. I browser di solito non hanno uno stile predefinito per questo tag, complimenti al team SO per fare il lavoro extra.
— Romainl,

grazie romainl, ma hai un problema con autoComplPop funziona solo con file html no js e css e php
— Tarek Saied

Come molti plug-in di Vim, acp è molto sensibile ai tipi di file. Se il tipo di file del buffer è "html", né acp né omni complete funzioneranno per JS / CSS / PHP integrati. E ho intenzione di modificare la mia risposta, non abbastanza opzioni di modifica / stanza qui.
— romainl

Potresti preferire utilizzare l' attuale ramo di manutenzione di snipMate che Rok Garbas & co. mettere insieme.
— thisgeek

8

Questo plugin è utile anche: https://github.com/maksimr/vim-jsbeautify . Fornisce la formattazione automatica completa per javascript. Un tasto e il tuo codice sembra bello. Può tornare utile anche quando si incollano frammenti di codice. Si avvale del famoso js-beautifier, che può anche essere trovato come un'applicazione online. Quest'ultimo può essere trovato proprio qui: http://jsbeautifier.org/ .


3
Ho scritto un plug-in di formattazione automatica per vim che integra js-beautifier e altro. Controlla qui: github.com/Chiel92/vim-autoformat
— Chiel ten Brinke il

più bello - il migliore
— Alex Shwarc,

6

Uso solo un plugin vim specifico per js - jslint.vim - https://github.com/hallettj/jslint.vim che convalida il tuo codice con le regole jslints e ti dà anche errori di sintassi.


grazie ma penso di avere un problema a guardare img69.imageshack.us/img69/7629/11142565.png
— Tarek Saied

Hm, su Windows ci sono istruzioni specifiche che devi seguire, richiede un interprete javascript. Non ho provato a installarlo su Windows, ma le istruzioni di installazione sono un po 'in fondo al file README, mi dispiace non poter essere più di aiuto lì.
— Scott,

3

Per correggere rientro e formattazione automatica (Ctrl =): rientro JavaScript

Per impostare la larghezza del rientro, aggiungi il javascript.vimfile nella directory ~ / .vim / ftplugin con il seguente contenuto (per il rientro di due spazi):

 setl sw=2 sts=2 et

in ~/.vimrc:autocmd FileType javascript setlocal sw=2 ts=2 sts=2
— JuanPablo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.