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.