VIM + JSLint?


120

저는 vim에서 하루를 보내며 현재 많은 JavaScript를 작성하고 있습니다. 나는 코딩을 향상시키기 위해 JSLint 또는 유사한 것을 vim에 통합하는 방법을 찾으려고 노력해 왔습니다. 누군가 이런 일을 할 수 있었습니까?

편집하다:

이것을 시도했습니다 : Vim 에서 Javascript Syntax Checking , 불행히도 출력은 매우 조잡합니다.

답변:


34

JSLint 웹 서비스 + VIM 통합 의 지침을 따르 거나 내가 한 일을 할 수 있습니다.

http://jslint.webvm.net/mylintrun.jshttp://www.jslint.com/fulljslint.js를 다운로드 하여 원하는 디렉토리에 넣으십시오.

그런 다음 mylintrun.js 시작 부분에 다음 줄을 추가합니다.

var filename= arguments[0];

mylintrun.js ( "print (...)")의 마지막 코드 줄을 다음과 같이 변경합니다.

 print ( filename + ":" + (obj["line"] + 1) + ":" + (obj["character"] + 1) + ":" + obj["reason"] );

이렇게하면 mylintrun.js에서 VIM quickfix 창 (: copen)과 함께 사용할 수있는 오류 목록이 출력됩니다.

이제 VIM에서 다음을 설정하십시오.

set makeprg=cat\ %\ \\\|\ /my/path/to/js\ /my/path/to/mylintrun.js\ %
set errorformat=%f:%l:%c:%m

여기서 / my / path / to / js 를 SpiderMonkey의 경로로 변경하고 /my/path/to/mylintrun.js 를 JS 파일을 넣은 경로로 변경해야합니다.

이제 VIM에서 : make 를 사용하고 quickfix 창 (: he quickfix-window)을 사용하여 오류에서 오류로 이동할 수 있습니다.


버퍼를 catting하고 mylintrun에 인수로 전달하는 이유는 무엇입니까?
jamessan 2010

@jamessan : mylintrun.js 스크립트는 stdin에서 파일을 읽습니다. 그래서 그것이 고양이를위한 것입니다. 오류 출력의 경우 mylintrun.js에는 파일 이름도 필요하므로 인수로 제공됩니다. stdin에서 읽는 대신 읽기를 위해 파일을 열도록 스크립트를 수정할 수 있습니다 (cat 불필요). 하지만이 귀찮게하고 싶지 않았다 ... 그리고 난 당신이 자바 스크립트 엔진 승 컴파일 한 경우 파일을 읽는 데 문제가 생각 / O를에 FileObject
f3lix

컴퓨터에 '의 SpiderMonkey의 경로'무엇인가 - 나는 광산에 대한 몇 가지있어
프랑켄슈타인 박사

mylintrun.js에 도착할 수 없습니다. 대체 위치가 있습니까? 죽은 것으로 보인다
bluekeys

1
mylintrun.js 및 fulljslint.js에 대한 링크가 끊어져서이 답변에 크게 의존하기 때문에 유용하지 않습니다. 작동중인 URL로 업데이트 할 수 있습니까? 그렇지 않으면 상당히 좋아 보이고 많은 사람들에게 도움이 되었기 때문에이 답변을 삭제해야합니다. 감사.
Kev

187

IMO의 모범 사례는 다음과 같습니다.

  1. Syntastic Vim 플러그인 설치 -다양한 언어에 대한 최고의 구문 검사기이며 Vim의 위치 목록 (== quickfix ) 창과 통합됩니다.
  2. 아래 두 가지 옵션 중 하나를 선택하십시오.

JSLint

  1. jsl선호하는 패키지 관리자 (Ubuntu의 apt-get, Mac의 brew 등)를 사용하여 (JSLint 실행 파일)을 설치합니다 .

커뮤니티 중심 jshint.com (JSLint보다 우수)

  1. 선호하는 패키지 관리자를 사용하여 node.js 를 설치합니다 .
  2. Node Package Manager 설치 : 'curl https://npmjs.org/install.sh | sh ' 편집 : npm은 현재 node.js의 일부입니다.
  3. 전역 적으로 jshint 설치 : 'npm install jshint -g'
  4. $ HOME 디렉토리 에 jshint 구성 파일을 넣으십시오 . '~ / .jshintrc'
  5. 덮어 쓰기 Syntasticsyntax_checkers/javascript.vim를 가진 파일 이 하나 - 편집 : 더 이상 필요 NEWEST 함께 SYNTASTIC VERSION.

즐겨! :)


1
나는 지금 이것을 시도하고있다. Syntastic 복제 및 "rake install"명령 사용을 시도한 다음 javascrip.vim 파일을 귀하의 파일로 교체했습니다. 여전히 그것을 사용하는 방법을 알아낼 수 없습니다. : SyntasticEnable은 내가 볼 수있는 한 아무것도하지 않습니다. 그래도 계속 노력하겠습니다 ..
Claes Mogren

2
좋습니다. Syntastic에는 ballon_eval이 필요하지만 MacVim에서는 지원되지 않습니다. 너무 나쁜 ..
Claes Mogren

1
그것을 추가하려고 시도했지만 (또는 그것의 더 예쁜 버전) 가져 오기를 바랍니다. github.com/scrooloose/syntastic/pull/47
Claes Mogren

9
왜 아무 일도 일어나지 않는지 알아 내려고 오랜 시간을 보냈습니다 ... Ory의 .jshintrc를 뽑았다면 "predef"개체에서 "google"뒤에 오는 쉼표로 인해 jshint가로드되지 않고 Syntastic은 조용히 실패합니다.
ThePants

1
Windows 용 jsl : javascriptlint.com/download.htm 도 jsl.vim 파일에서이 문제를 확인하십시오. vim.1045645.n5.nabble.com/…
Andrew

17

또 다른 옵션은 Jesse Hallet의 jslint.vim 입니다. GitHub에서 사용할 수 있으며 Vim의 QuickFix 창을 사용하거나 사용하지 않고 작동합니다. 멋진 플러그인입니다!


1
이것에 대해 +1. 잘 작동합니다. vim.org/scripts/script.php?script_id=2729 에서 편리하게 다운로드 할 수 있습니다 . Windows에서는 Ruby를 설치해야합니다.
mm2001

3
또한 아래에 언급 된 JSHint를 확인하십시오.
Alex Kahn

프로젝트는 더 이상 개발 중이 아닙니다.
OrangeTux 2014

6

나는 node-lint를 사용하여 매우 행복했습니다.

sudo npm -g install jslint

그런 다음 당신의 .vim

set makeprg=jslint\ %
set errorformat=%-P%f,
        \%E%>\ #%n\ %m,%Z%.%#Line\ %l\\,\ Pos\ %c,
        \%-G%f\ is\ OK.,%-Q

이제 :makejslint를 실행합니다. 빠른 수정 창에 오류가 나타납니다.


3

다음은 2012 년 11 월 업데이트 된 Mac OS 지침입니다. Node.js를 얻기 위해 Homebrew를 설치했고 Vim 용 Syntastic을 이미 설치했다고 가정합니다 ( https://github.com/carlhuda/janus 를 사용합니다. 자동으로 제공) :

$ brew install node.js
$ npm install -g jshint

그런 다음 '/ usr / local / share / npm / bin'을 PATH에 추가합니다 (아마 ~ / .bashrc에 있음). 예를 들어 다음 행을 추가하십시오. export PATH="$PATH:/usr/local/share/npm/bin"

터미널을 다시 시작하고

$ jshint

명령 줄에서 실행할 수 있습니다. Syntastic은 jsHint를 자동으로 검색합니다. MacVim을 다시 시작하고 즐기십시오!


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.