2011-08-29 19 views
44

Jak używać wtyczki Syntastic Vim z JSHint do sprawdzania poprawności kodu JavaScript?Jak skonfigurować Syntastic z JSHint?

Środowisko:

  • Ubuntu 11.04
  • VIM - Vi IMproved 7.3

Co mam zainstalowane, zgodnie z roztworu w VIM + JSLint?:

  • Vundle
  • węzła js
  • Węzeł Package Manager
  • jshint globalnie
  • Syntastic zainstalowane przez Vundle (używany w. polecenia BundleInstall wewnątrz vim, aby upewnić Syntastic został zainstalowany)

.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+=%* 

poszukuje zainstalowanych plików wykonywalnych:

$ 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: wiersz 3, kol. 1, "blbla" nie jest zdefiniowany.
test.js: wiersz 4, kolumna 1, "x" nie jest zdefiniowany.
test.js: wiersz 4, kol. 5, "brak" nie jest zdefiniowany.
test.js: wiersz 6, kol. 1, "a" nie jest zdefiniowany.
test.js: wiersz 7, kol. 1, "b" nie jest zdefiniowany.
test.js: wiersz 8, col 5, "a" nie jest zdefiniowane.
test.js: wiersz 8, kol. 10, "b" nie jest zdefiniowany.
test.js: wiersz 8, kol 7, Oczekiwano '===' i zamiast tego zobaczyłem '=='.

8 błędy

$ 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 

Zarówno jshint i Syntastic wydają się być zainstalowane, ale coś jest prawdopodobnie brakuje. Co by to było?

+0

Bardzo dziwne! Po prostu wypróbowałem Syntastic z Vim 7.3 na Linuksie bez żadnych problemów. Może problem z GitHubem? –

Odpowiedz

64

Oto bardziej aktualne informacje, nie jest to konfiguracja skojarzyć rozszerzenie pliku do sprawdzania,
w .vimrc

let g:syntastic_javascript_checkers = ['jshint'] 

również uzyskać informacje na temat co się dzieje, uruchom polecenie w vim

:SyntasticInfo 

I dostaniesz wynik podobny do tego:

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

Czy nie masz na myśli "jshint" zamiast "jslint", jak na pytanie? –

+0

OP tutaj; Potwierdzam, że to działa: 'let g: syntastic_javascript_checkers = ['jshint']'. –

6

Po prostu miałem ten sam problem. Okazuje się, że Syntastic szuka jsl (JSLint), zanim wyszuka jshint. Jeśli masz oba zainstalowane, prawdopodobnie zostaniesz wprowadzony w błąd. Przeprowadziłem jsl gdzieś nie w mojej PATH, i jshint został wykryty dobrze.

Źródło:
https://github.com/scrooloose/syntastic/pull/47

+0

To przydatne porady, ale w moim przypadku nie sądzę, miałem jsl na ścieżce, ponieważ użyłem polecenia "który jsl", aby go szukać. –

+0

Mam "jslint" i "jshint" na mojej PATH. Z jakiegoś powodu Syntastic nie wyświetlił opinii dla jslint. Usunięcie jslint z PATH pozwoliło Syntastic użyć zamiast tego jshint, co mi się udało. –

0

zmagałem się z tym problemem przez kilka dni i SyntasticInfo nie rozpozna jshint jako dostępny sprawdzający nawet po dodaniu let g:syntastic_javascript_checkers['jshint'] do mojego .vimrc. Używam Ubuntu 15.04 i postępowałem zgodnie z samouczkiem this, aby zainstalować nvm, nodejs i jshint na Ubuntu. Po tym, jak to zrobiłem, odkryłem, że jeśli usunąłem linię filetype plugin indent on z mojego .vimrc, a następnie otworzyłem plik .js wszystko działało idealnie! Podsumowując ...

  1. śledzić tutorial umieszczonego powyżej
  2. dodać ~/.nvm/<version_number>/bin do ścieżki w .bashrc
  3. usunąć filetype plugin indent on od .vimrc
  4. dodać let g:syntastic_javascript_checkers['jshint'] do .vimrc
  5. :so % wewnątrz vim
  6. otworzyć .js plik
  7. dodać filetype plugin indent on powrotem do .vimrc
  8. wszystko magicznie działa teraz
Powiązane problemy