VIM + JSLint?


120

Я провожу свої дні у vim, зараз пишу багато JavaScript. Я намагався знайти спосіб інтегрувати JSLint або щось подібне у vim, щоб покращити кодування. Хтось встиг зробити щось подібне?

Редагувати:

спробував це: перевірка синтаксису Javascript від Vim , на жаль, вихід дуже сильний.

Відповіді:


34

Ви можете слідкувати за втручаннями через веб-сервіс JSLint + інтеграція VIM або робити те, що я зробив:

Завантажте http://jslint.webvm.net/mylintrun.js та http://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 (: 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 і використовувати QuickFix вікно (: він QuickFix вікна) , щоб перейти від помилки до помилки.


Чому ви кетуєте буфер і передаєте його як аргумент mylintrun?
Jamessan

@jamessan: сценарій mylintrun.js зчитує файл із stdin. Отже, для чого потрібен котинг. Для виводу помилки mylintrun.js потрібне також ім'я файлу, тому він задається як аргумент. Ви можете змінити сценарій, щоб відкрити файл для читання, а не читати зі stdin (робить кішку непотрібною). Але я не хотів зациклюватися на цьому ... і я вважаю, що існує проблема з читанням файлів, якщо у вас є компільований механізм JavaScript без FileObject
f3lix

що таке "шлях до SpiderMonkey" на вашій машині - у мене є кілька на моєму
доктор Франкенштейн

Я не можу потрапити на mylintrun.js, є альтернативне місце розташування. здається, він мертвий
сині кладе

1
Посилання на mylintrun.js та fulljslint.js порушені, що робить цю відповідь менш корисною, оскільки вона сильно покладається на них. Чи можете ви оновити робочі URL-адреси? Інакше мені потрібно буде видалити цю відповідь, яка є обломкою, оскільки вона виглядає досить непогано і допомогла багатьом людям. Дякую.
Кев

187

Найкращий спосіб ІМО:

  1. Встановіть Syntastic Vim плагін - найкраща перевірка синтаксису для багатьох мов, плюс він інтегрується у вікно списку місцеположення Vim (== quickfix ).
  2. Виберіть один із двох варіантів нижче:

JSLint

  1. Встановіть jsl(виконувану програму JSLint) за допомогою улюбленого менеджера пакунків (Ubuntu apt-get, будинокbrew Mac тощо).

Jshint.com, керований спільнотою (краще, ніж JSLint)

  1. Встановіть node.js за допомогою улюбленого менеджера пакунків.
  2. Встановити Менеджер пакетів вузлів : 'curl https://npmjs.org/install.sh | sh ' EDIT: npm - ЧАСТИНА node.js ЗАРАЗ
    • Див. Http://npmjs.org для отримання додаткової інформації.
  3. Встановити jshint глобально: 'npm install jshint -g'
  4. Помістіть свій конфігураційний файл jshint у свій $ HOME dir: '~ / .jshintrc'
  5. Перезапишіть файл Syntastic за syntax_checkers/javascript.vimдопомогою цього файлу - РЕДАКТИРУЙТЕ: НІКОЛИ НЕ ПОТРІБНІ З НОВОЮ СИНТАСТИЧНОЮ ВЕРСІЄЮ.

Насолоджуйтесь! :)


1
Я зараз спробую це спробувати. Спробував клонування Syntastic та за допомогою команди "rake install", а потім замінив файл javascrip.vim на ваш. Досі не можу зрозуміти, як ним користуватися: SyntasticEnable не робить нічого, наскільки я бачу. Я все ще намагаюся ..
Claes Mogren

2
Гаразд, зауважив, що Syntastic вимагає ballon_eval, який не підтримується в MacVim. Шкода ..
Claes Mogren

1
Спробувавши додати його, сподіваємось, що його (або гарнішу
Claes

9
Я просто витратив тривалий час, намагаючись з'ясувати, чому нічого, здається, не відбувається ... якщо ви потягнули .jshintrc Орі, знайте, що після "google" в об'єкті "predef" є кінцева кома, яка спричиняє завантаження jshint і Синтастичний провал мовчки.
ThePants

1
jsl для Windows: javascriptlint.com/download.htm, також слідкуйте за файлом jsl.vim для цього питання: vim.1045645.n5.nabble.com/…
Ендрю

17

Ще один варіант - jslint.vim від Jesse Hallet . Він доступний на GitHub і працює з вікном Vim QuickFix або без нього. Це приємний плагін!


1
+1 для цього. Чудово працює. Зручне завантаження з vim.org/scripts/script.php?script_id=2729 . Зауважте, що в Windows вам потрібно буде встановити Ruby.
mm2001

3
Також не забудьте перевірити JSHint, згаданий нижче.
Алекс Кан

Проект вже не розробляється.
OrangeTux

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

Тепер :makeбуде запущено jslint. Помилки з’являються у вікні швидкого виправлення.


3

Ось інструкції для Mac OS, оновлені для листопада 2012. Передбачається, що у вас встановлений Homebrew для того, щоб отримати Node.js, і що ви вже встановили Syntastic для Vim (я використовую 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 та насолоджуйтесь!


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.