VIM + JSLint?


121

Günlerimi vim'de geçiriyorum, şu anda çok fazla JavaScript yazıyorum. Kodlamamı geliştirmek için JSLint veya benzeri bir şeyi vim'e entegre etmenin bir yolunu bulmaya çalışıyorum. Böyle bir şey yapmayı başaran var mı?

Düzenle:

bunu denedim: Vim'den Javascript Sözdizimi Kontrolü , maalesef çıktı çok kaba.

Yanıtlar:


34

JSLint web servisi + VIM entegrasyonundaki talimatları takip edebilir veya yaptığım şeyi yapabilirsiniz:

Http://jslint.webvm.net/mylintrun.js ve http://www.jslint.com/fulljslint.js'yi indirin ve seçtiğiniz bir dizine yerleştirin.

Ardından mylintrun.js'nin başına aşağıdaki satırı ekleyin:

var filename= arguments[0];

ve mylintrun.js'deki ("yazdır (...)") son kod satırını şu şekilde değiştirin:

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

Bu, mylintrun.js'de VIM quickfix penceresi (: copen) ile kullanılabilecek bir hata listesi çıktısını yapar.

Şimdi VIM'de aşağıdakileri ayarlayın:

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

Eğer değişime sahip olduğu / benim / / yol / js SpiderMonkey ve yoluna /my/path/to/mylintrun.js JS dosyalarını koymak yoluna.

Artık : make in VIM'i kullanabilir ve hatadan hataya atlamak için quickfix penceresini (: Quickfix-window) kullanabilirsiniz.


Neden tamponu yönetiyorsun ve onu mylintrun'a bir argüman olarak aktarıyorsun?
jamessan

@jamessan: mylintrun.js betiği dosyayı stdin'den okur. Demek kedi yetiştirme bunun için. Hata çıktısı için mylintrun.js de dosya adına ihtiyaç duyar, bu nedenle argüman olarak verilir. Stdin'den okumak yerine dosyayı okumak için açmak için betiği değiştirebilirsiniz (kediyi gereksiz kılar). Ama bununla uğraşmak istemedim ... ve FileObject olmadan derlenmiş bir JavaScript motorunuz varsa dosyaları okurken bir sorun olduğuna inanıyorum
f3lix

makinenizde 'SpiderMonkey'e giden yol' nedir - Benimkinde birkaç tane var
Dr. Frankenstein

Mylintrun.js'ye ulaşamıyorum, alternatif bir yer var mı? ölü görünüyor
bluekeys

1
Mylintrun.js ve fulljslint.js bağlantıları kopmuştur, bu da bu yanıtı yararlı olmaktan çıkarmaktadır çünkü onlara büyük ölçüde güvenmektedir. Lütfen çalışan URL'ler ile güncelleme yapabilir misiniz? Aksi takdirde, oldukça iyi göründüğü ve birçok kişiye yardımcı olduğu için serseri olan bu yanıtı silmem gerekecek. Teşekkürler.
Kev

187

En iyi uygulama yolu IMO'dur:

  1. Syntastic Vim eklentisini kurun - Birçok dil için en iyi sözdizimi denetleyicisi, ayrıca Vim'in konum listesi (== quickfix ) penceresiyle bütünleşir .
  2. Aşağıdaki iki seçenekten birini seçin:

JSLint

  1. jslFavori paket yöneticinizi (Ubuntu apt-get, Mac'in evibrew vb. ) Kullanarak (JSLint yürütülebilir) yükleyin .

Topluluk odaklı jshint.com ( JSLint'ten daha iyi)

  1. Favori paket yöneticinizi kullanarak node.js yükleyin .
  2. Düğüm Paketi Yöneticisini Kurun : 'curl https://npmjs.org/install.sh | sh ' DÜZENLEME: npm ŞİMDİ node.js'NİN PARÇASI
  3. Jshint'i global olarak yükleyin : 'npm install jshint -g'
  4. Jshint yapılandırma dosyanızı $ HOME dizininize koyun : '~ / .jshintrc'
  5. Üzerine Yaz Syntastic 'ın syntax_checkers/javascript.vimdosya bu bir - EDIT: ARTIK GEREKLİ EN YENİ İLE SYNTASTIC VERSİYONU.

Zevk almak! :)


1
Bunu şimdi deniyorum. Syntastic'i klonlamayı denedim ve "rake install" komutunu kullanarak javascrip.vim dosyasını sizinkiyle değiştirdi. Hala nasıl kullanılacağını çözemiyorum,: SyntasticEnable görebildiğim kadarıyla hiçbir şey yapmıyor. Yine de denemeye devam edeceğim ..
Claes Mogren

2
Tamam, Syntastic'in MacVim'de desteklenmeyen ballon_eval gerektirdiğini fark ettim. Çok kötü ..
Claes Mogren


9
Uzun bir süre neden hiçbir şeyin olmadığını anlamaya çalıştım ... Ory'nin .jshintrc dosyasını çekerseniz, "predef" nesnesinde "google" dan sonra jshint'in yüklenememesine neden olan bir virgül olduğunu unutmayın ve Sözdizimi sessizce başarısız olur.
ThePants

1
Windows için jsl: javascriptlint.com/download.htm ayrıca jsl.vim dosyasında bu soruna dikkat edin: vim.1045645.n5.nabble.com/…
Andrew

17

Diğer bir seçenek ise Jesse Hallet'ten jslint.vim . GitHub'da mevcuttur ve Vim'in QuickFix penceresi ile veya olmadan çalışır. Güzel bir eklenti!


1
Bunun için +1. Harika çalışıyor. Elverişli indirilebilir vim.org/scripts/script.php?script_id=2729 . Windows'ta Ruby'yi yüklemeniz gerekeceğini unutmayın.
mm2001

3
Ayrıca aşağıda belirtilen JSHint'i kontrol ettiğinizden emin olun.
Alex Kahn

Proje artık geliştirme aşamasında değil.
OrangeTux

6

Node-lint kullanmaktan çok mutlu oldum

sudo npm -g install jslint

Sonra bunu senin içinde bir yere vur .vim

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

Şimdi bir :makejslint çalıştıracak. Quickfix penceresinde hatalar görünür.


3

İşte Kasım 2012 için güncellenen Mac OS talimatları. Node.js'yi almak için Homebrew'in kurulu olduğunu ve Syntastic for Vim'i zaten kurduğunuzu varsayar ( https://github.com/carlhuda/janus kullanıyorum , bunu otomatik olarak sağlar):

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

Ardından PATH'inize '/ usr / local / share / npm / bin' ekleyin (muhtemelen ~ / .bashrc içinde). Örneğin şu satırı ekleyin: export PATH="$PATH:/usr/local/share/npm/bin"

Terminalinizi yeniden başlatın ve kontrol edin

$ jshint

komut satırından çalıştırılabilir. Syntastic, jsHint'i otomatik olarak keşfedecektir. MacVim'i yeniden başlatın ve keyfini çıkarın!


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.