2011-08-29 21 views
44

¿Cómo usar el complemento Syntastic Vim con JSHint para validar el código JavaScript?¿Cómo se configura Syntastic con JSHint?

Medio Ambiente:

  • Ubuntu 11.04
  • VIM - vi mejorado 7,3

Lo que he instalado, a raíz de la disolución a VIM + JSLint?:

  • Vundle
  • nodo Js
  • nodo Administrador de paquetes
  • jshint, a nivel mundial
  • Syntastic instalado a través de Vundle (utilizado el:. BundleInstall comando dentro de Vim para asegurarse de que se ha instalado Syntastic)

.vimrc:

set nocompatible    " be iMproved 
filetype off     " required! 

set rtp+=~/.vim/bundle/vundle/ 
call vundle#rc() 

" let Vundle manage Vundle 
" required! 
Bundle 'gmarik/vundle' 

" My Bundles here: 
Bundle 'scrooloose/syntastic' 

filetype plugin indent on  " required! 

let g:syntastic_enable_signs=1 
let g:syntastic_auto_jump=1 
let g:syntastic_stl_format = '[%E{Err: %fe #%e}%B{, }%W{Warn: %fw #%w}]' 

set statusline+=%#warningmsg# 
set statusline+=%{SyntasticStatuslineFlag()} 
set statusline+=%* 

buscando ejecutables instalados:

$ which gjslint 
$ which jslint 
$ which jsl 
$ which jshint 
/home/fernando/local/node/bin/jshint 
$ 


$ echo $PATH 

>/home/fernando/local/bin:/home/fernando/local/node/bin:/home/fernando/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games 

$ jshint test.js 

test.js: la línea 3, col 1, 'blbla' no está definida.
test.js: línea 4, col 1, 'x' no está definido.
test.js: línea 4, col 5, 'nonono' no está definido.
test.js: línea 6, col 1, 'a' no está definido.
test.js: línea 7, col 1, 'b' no está definido.
test.js: línea 8, col 5, 'a' no está definido.
test.js: línea 8, col 10, 'b' no está definido.
test.js: línea 8, col 7, se esperaba '===' y en su lugar se veía '=='.

8 errores

$ vi test.js -- no error message shown 

:SyntasticEnable -- Vim exits and restarts, opening the same file, but still no message 

:w -- still no error message 

:Errors -- the location list opens but it is empty 

Tanto jshint y Syntastic parecen ser instalado, pero algo es probable que falte. ¿Qué podría ser?

+0

muy raro! Acabo de probar Syntastic con Vim 7.3 en Linux sin ningún problema. Tal vez presentar un problema en GitHub? –

Respuesta

64

Aquí está una información más actualizada, hay una configuración para asociar una extensión de archivo a un corrector,
en su .vimrc

let g:syntastic_javascript_checkers = ['jshint'] 

también para obtener información sobre ¿Qué está pasando? Ejecute este comando en vim

:SyntasticInfo 

Y obtendrá un resultado similar al siguiente:

Syntastic info for filetype: javascript 
Available checkers: gjslint jshint 
Currently active checker(s): gjslint 
Press ENTER or type command to continue 
+5

¿No quiere decir 'jshint' en lugar de' jslint', como la pregunta? –

+0

OP aquí; Confirmo que esto funciona: 'let g: syntastic_javascript_checkers = ['jshint']'. –

6

Acabo de tener el mismo problema. Resulta que Syntastic busca jsl (JSLint) antes de buscar jshint. Si los tiene instalados, es probable que los engañen. Moví jsl en algún lugar no en mi RUTA, y jshint se detectó muy bien.

Fuente:
https://github.com/scrooloose/syntastic/pull/47

+0

Es un consejo útil, pero en mi caso no creo que tuviera jsl en el camino, ya que utilicé el comando "which jsl" para buscarlo. –

+0

Tengo "jslint" y "jshint" en mi PATH. Por alguna razón, Syntastic no mostró comentarios para jslint. Al eliminar jslint de PATH, Syntastic usó jshint en su lugar, lo cual fue el truco para mí. –

0

Luché con este número por día y SyntasticInfo no reconocería jshint como un corrector disponibles incluso después he añadido a mi let g:syntastic_javascript_checkers['jshint'].vimrc. Estoy usando Ubuntu 15.04 y seguí el tutorial this para instalar nvm, nodejs y jshint en Ubuntu. Después de hacerlo, descubrí que si eliminaba la línea filetype plugin indent on de mi .vimrc y luego abrí un archivo .js ¡todo funcionó a la perfección! Para resumir ...

  1. seguir el tutorial vinculado anteriormente
  2. añadir a ~/.nvm/<version_number>/bin ruta en .bashrc
  3. eliminar filetype plugin indent on de .vimrc
  4. añadir let g:syntastic_javascript_checkers['jshint'] a .vimrc
  5. :so % dentro de vim
  6. abrir una .js archivo
  7. añadir filetype plugin indent on de nuevo a su .vimrc
  8. todo mágicamente funciona ahora
Cuestiones relacionadas