VIM + JSLint?


120

मैं अपना दिन व्यतीत करता हूं, वर्तमान में बहुत सारे जावास्क्रिप्ट लिख रहा हूं। मैं अपने कोडिंग को बेहतर बनाने के लिए JSLint या कुछ इसी तरह से एकीकृत करने का एक तरीका खोजने की कोशिश कर रहा हूं। क्या कोई इस तरह से कुछ करने में कामयाब रहा है?

संपादित करें:

यह कोशिश की: जावास्क्रिप्ट सिंटैक्स जाँच विम से , दुर्भाग्य से उत्पादन बहुत कच्चा है।

जवाबों:


34

आप JSLint वेब-सेवा + VIM एकीकरण से घुसपैठ का पालन कर सकते हैं या मैंने जो किया है:

Http://jslint.webvm.net/mylintrun.js और http://www.jslint.com/fulljslint.js डाउनलोड करें और उन्हें अपनी पसंद की निर्देशिका में डालें।

फिर mylintrun.js की शुरुआत में निम्नलिखित पंक्ति जोड़ें:

var filename= arguments[0];

और mylintrun.js ("प्रिंट (...)" में कोड की अंतिम पंक्ति बदलें:

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

यह mylintrun.js में एक त्रुटि सूची का उत्पादन करता है जिसे VIM क्विकफिक्स विंडो (: कोपेन) के साथ उपयोग किया जा सकता है।

अब VIM में निम्नलिखित सेट करें:

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

आप परिवर्तन करने के लिए है, जहां / मेरी / path / to / js Spidermonkey और करने के लिए पथ को /my/path/to/mylintrun.js पथ जहां जे एस फ़ाइलें डाल करने के लिए।

अब, आप उपयोग कर सकते हैं : वीआईएम में बनायें और क्विकफिक्स विंडो (: he quickfix-window) का उपयोग करके त्रुटि से त्रुटि पर कूदें।


आप बफर को क्यों पूरा कर रहे हैं और इसे mylintrun के तर्क के रूप में पारित कर रहे हैं?
जामसेन

@jamessan: mylintrun.js स्क्रिप्ट स्टड से फाइल पढ़ती है। तो यह है कि catting के लिए क्या है। त्रुटि आउटपुट के लिए mylintrun.js को फ़ाइल नाम की भी आवश्यकता होती है, इसलिए इसे एक तर्क के रूप में दिया जाता है। आप स्टड से पढ़ने (बिल्ली को अनावश्यक बनाने) के बजाय पढ़ने के लिए फ़ाइल खोलने के लिए स्क्रिप्ट को संशोधित कर सकते हैं। लेकिन मैं इसके साथ परेशान नहीं करना चाहता था ... और मेरा मानना ​​है कि अगर आप एक जावास्क्रिप्ट इंजन संकलित w / o FileObject
f3lix

क्या आपकी मशीन पर 'Spidermonkey के लिए पथ' है - मैं मेरा पर कुछ मिल गया है
डॉ फ्रेंकस्टीन

मुझे mylintrun.js पर नहीं मिल सकता है, क्या कोई वैकल्पिक स्थान है। यह मृत दिखाई देता है
ब्लूकीज़

1
Mylintrun.js और fulljslint.js के लिंक टूटे हुए हैं जो इस उत्तर को उपयोगी से कम बता रहे हैं क्योंकि यह उन पर बहुत निर्भर करता है। क्या आप काम कर रहे यूआरएल के साथ अपडेट कर सकते हैं? अन्यथा मुझे इस उत्तर को हटाने की आवश्यकता होगी जो कि एक बुमेर है क्योंकि यह काफी अच्छा दिखता है और इसने बहुत सारे लोगों की मदद की है। धन्यवाद।
केव

187

सबसे अच्छा तरीका IMO है:

  1. Syntastic Vim plugin स्थापित करें - अधिकांश भाषाओं के लिए सर्वश्रेष्ठ सिंटैक्स-चेकर, इसके अलावा यह Vim की स्थान-सूची (== क्विकफ़िक्स ) विंडो के साथ एकीकृत होता है ।
  2. नीचे दिए गए दो विकल्पों में से एक चुनें:

JSLint

  1. jslअपने पसंदीदा पैकेज मैनेजर (उबंटू apt-get, मैक के घरbrew , आदि) का उपयोग करके स्थापित करें (JSLint निष्पादन योग्य )।

समुदाय संचालित jshint.com (JSLint से बेहतर)

  1. अपने पसंदीदा पैकेज मैनेजर का उपयोग करके नोड.जेएस स्थापित करें ।
  2. नोड पैकेज प्रबंधक स्थापित करें : 'कर्ल https://npmjs.org/install.sh | श ' संपादित करें: npm अब नोड का हिस्सा है
    • अधिक जानकारी के लिए http://npmjs.org देखें ।
  3. विश्व स्तर पर jshint स्थापित करें : 'npm स्थापित jshint -g'
  4. अपने jshint config फाइल को अपने $ HOME में डालें: '~ / .jshintrc'
  5. ओवरराइट Syntastic के syntax_checkers/javascript.vimसाथ फ़ाइल इस एक - संपादित करें: कोई आवश्यकता नहीं नवीनतम के साथ SYNTASTIC संस्करण।

का आनंद लें! :)


1
मैं अभी यह कोशिश कर रहा हूँ। क्लोनिंग सिंथेटिक की कोशिश की और "रेक इंस्टॉल" कमांड का उपयोग किया और फिर javascrip.vim फ़ाइल को आपके साथ बदल दिया। अभी भी इसका उपयोग कैसे किया जा सकता है, इसका पता नहीं लगा सकते हैं: जहाँ तक मैं देख सकता हूँ SyntasticEnable कुछ भी नहीं करता है। हालांकि मैं कोशिश करता रहूँगा ..
दावा है कि मोगेन

2
ठीक है, ध्यान दिया कि Syntastic के लिए ballon_eval की आवश्यकता होती है, जो MacVim में समर्थित नहीं है। बहुत बुरा ..
मोगेन का दावा

1
इसे जोड़ने की कोशिश की, आशा है कि यह (या इसके एक पूर्व संस्करण) github.com/scrooloose/syntastic/pull/47
दावा किया गया है कि मोगेन

9
मैंने अभी यह जानने में बहुत समय बिताया कि कुछ भी क्यों नहीं हो रहा है ... अगर आपने ओरी की .jshintrc को बताया कि "पूर्वनिर्धारित" ऑब्जेक्ट में "google" के बाद एक अनुगामी अल्पविराम खींचा गया है, जिसके कारण jshint लोड होने में विफल रहता है। सिंथेटिक चुपचाप विफल करने के लिए।
ThePants

1
विंडोज के लिए jsl: javascriptlint.com/download.htm , इस मुद्दे के लिए jsl.vim फ़ाइल में भी देखें: vim.1045645.n5.nabble.com/…
एंड्रयू

17

एक अन्य विकल्प जेसी हैलेट से jslint.vim है। यह GitHub पर उपलब्ध है और Vim की क्विकफिक्स विंडो के साथ या इसके बिना काम करता है। यह एक अच्छा प्लगइन है!


1
इसके लिए +1। बहुत अच्छा काम करता है। Vim.org/scripts/script.php?script_id=2729 से आसानी से डाउनलोड किया जा सकता है । ध्यान दें, विंडोज पर आपको रूबी को स्थापित करना होगा।
mm2001

3
नीचे उल्लेखित JSHint की जाँच अवश्य करें।
एलेक्स कहन

परियोजना अब विकास के अधीन नहीं है।
ऑरेंजट्यूक्स

6

मैं नोड-लिंट का उपयोग करके बहुत खुश हूं

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 के लिए मैक ओएस निर्देश अपडेट किए गए हैं। माना जाता है कि आपने Node.js प्राप्त करने के लिए होमब्रे को स्थापित किया है, और यह कि आपने पहले ही विम के लिए Syntastic स्थापित कर दिया है (मैं https://github.com/carlhuda/janus का उपयोग करता हूं जो यह स्वचालित रूप से प्रदान करता है):

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

उसके बाद अपने PATH (शायद ~ / .bashrc में) के लिए '/ usr / स्थानीय / शेयर / npm / बिन' जोड़ें। उदाहरण के लिए, लाइन जोड़ें: export PATH="$PATH:/usr/local/share/npm/bin"

अपने टर्मिनल को पुनरारंभ करें और जाँचें

$ jshint

कमांड लाइन से निष्पादन योग्य है। सिंथेटिक स्वचालित रूप से jsHint की खोज करेगा। MacVim को पुनरारंभ करें और आनंद लें!


2

उत्पादन प्रारूप के लिए HTML के JSLint के दुर्भाग्यपूर्ण विकल्प से निपटने के लिए लिंक्स के माध्यम से परिणामों को बेहतर बनाना बेहतर है। मैं यहाँ कैसे करना है पर एक ब्लॉग पोस्ट है:

http://www.fleegix.org/articles/2008-09-06-jslint-in-vim-through-lynx

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.