Рекомендовані плагіни Vim для кодування JavaScript? [зачинено]


125

Я новачок у JS & Vim. Які плагіни допоможуть мені написати код Javascript?


6
Щоб надати питання більш чітко, а також допомогти ОП на їхній англійській мові для майбутніх публікацій ... У ньому слід писати: "Привіт, я новачок у JS & Vim. Які плагіни допоможуть мені написати код Javascript?" Ви можете сказати "Я новачок у Javascript та vim". Ви можете використовувати "що є" для однини, наприклад, "Що таке a_plugin, який міг би мені допомогти ..." або ви можете використовувати " what " для множини, як це: " Which_plugins допоможе мені ...". Також зауважте, що замість "плагінів є " слід використовувати "плагіни б ", оскільки це гіпотетично. Сподіваюся, що це допомагає :-)
hendrixski

3
@hendrixski - голосуйте за повторне відкриття цього питання.
ocodo

8
Найбільш конструктивне неконструктивне питання коли-небудь.
Владислав Зоров

8
Мені дуже подобається, як це "неконструктивне" питання допомогло мені значно покращити робочий процес.
MaiaVictor

Оскільки питання закрито (несправедливо IMO), я просто додам тут коментар: для NeoVim є електронний фронт-майданчик для автоматичного завершення сервера мови мовлення машинопису (працює і з ванільним JS!): Onivim.io . Він все ще трохи шорсткий по краях, але я використовую його як свій щоденний драйвер вже кілька тижнів і не мав занадто багато проблем. Навколо нього справді гарна спільнота, і вона перебуває в дуже важкому розвитку, тому я очікую від неї хороших речей у майбутньому! Повне розкриття інформації: я роблю щомісячну пожертву на проект і планую внести свій внесок у майбутньому.
Parker Ault

Відповіді:


116

Перевірка синтаксису / підшивка

Є дуже простий спосіб інтегрувати JSLint або керовану спільнотою jshint.com (що набагато краще IMO) з Vim, використовуючи плагін Syntastic Vim. Перегляньте іншу публікацію для отримання додаткової інформації.

Перегляд вихідного коду / список тегів

Там також дуже чутливо додати тег-лістинг з допомогою Mozilla в DoctorJS (раніше jsctags ), який також використовується в Cloud9 IDE «s Ace онлайн редактор .

  1. Встановіть наступні пакети за допомогою улюбленого менеджера пакунків (Ubuntu's apt-get, домашнійbrew комп'ютер Mac тощо):
    1. exuberant-ctags
      • ПРИМІТКА. Після встановлення переконайтеся, що запуск працює ctagsфактично, exuberant-ctagsа не встановлена ​​ОС ctags. Це можна дізнатися, виконавши ctags --version.
    2. node (Node.js)
  2. Клон DoctorJSз github:git clone https://github.com/mozilla/doctorjs.git
  3. Зайдіть всередину DoctorJSdir і make install(Вам також знадобиться makeвстановлений додаток, але це дуже просто).
    • Там є деякі помилки при встановленні плагіна, make installпоки що не робить фокус. На даний момент я просто додаю реп- bin/реп до мого $ PATH замість цього. Див . GitHub DoctorJS та видає сторінки для отримання додаткової інформації.
  4. Встановіть плагін TagBar Vim ( ПРИМІТКА. Це TagBar, а не старий сумнозвісний TagList!).
  5. ПРИБУТ. :)

Новий проект - Tern.js

В даний час DoctorJS помер . Там новий багатообіцяючий проект під назвою tern.js . Наразі вона знаходиться на стадії бета-версії, і з часом її слід замінити.

Є проект ramitos / jsctags, який використовує tern в якості свого двигуна. Просто npm install -gце, і панель тегів автоматично використовуватиме його для файлів javascript.


5
+1 для TagBar (був відомий лише про TagList!)
RobM

9
Наразі doctorjs вимагає клонувати рекурсивні дії, як зазначено в цій помилці , git clone --recursive https://github.com/mozilla/doctorjs.gitа потім зробити встановлення повинно працювати
Енді Рей

1
doctorjs у Windows: baumichel.blogspot.ca/2011/11/… додавання додаткових файлів у TagBar: github.com/majutsushi/tagbar/wiki
Андрій

6
Перш ніж зробити крок 3, CD в doctorjs і зробити це: git submodule init && git submodule update. Потім зробіть крок 3.
глорто

2
Команда brew install ctags-exuberant
варить

17

snipMate емулює систему вставки TextMate і за замовчуванням постачає купу корисних фрагментів JS (серед інших). Додати своє власне надзвичайно просто.

javaScriptLint дозволяє перевірити свій код щодо jsl.

Також на vim.org можна знайти різноманітні файли синтаксису JavaScript . Спробуйте їх і подивіться, який з них найкраще підходить для вашого стилю кодування.

Рідна всенародна ( ctrlx- ctrlo) працює для мене дуже добре. Ви можете зробити це більш динамічним за допомогою autoComplPop , але це може часом дратувати.

редагувати у відповідь на коментар tarek11011:

acp не працює для JavaScript за замовчуванням, вам доведеться його трохи налаштувати. Ось як я це зробив (брудний злом, я все ще Vim noob):

У vim-autocomplpop / plugin / acp.vim я додав phpта javascriptactionscript) до, behavsщоб він виглядав так:

let behavs = {
    \   '*'            : [],
    \   'ruby'         : [],
    \   'python'       : [],
    \   'perl'         : [],
    \   'xml'          : [],
    \   'html'         : [],
    \   'xhtml'        : [],
    \   'css'          : [],
    \   'javascript'   : [],
    \   'actionscript' : [],
    \   'php'          : [],
    \ }

Трохи нижче є ряд кодових блоків, які виглядають так:

"---------------------------------------------------------------------------
call add(behavs.ruby, {
    \   'command' : "\<C-x>\<C-o>",
    \   'meets'   : 'acp#meetsForRubyOmni',
    \   'repeat'  : 0,
    \ })

Я скопіював цей і трохи відредагував його так, щоб виглядати так:

"---------------------------------------------------------------------------
call add(behavs.javascript, {
    \   'command' : "\<C-x>\<C-o>",
    \   'meets'   : 'acp#meetsForRubyOmni',
    \   'repeat'  : 0,
    \ })

і зробив те ж саме для actioncript та php.

Якщо ви хочете відредагувати JS / CSS в документі HTML, ви можете зробити: встановити ft = html.css.javascript у командному рядку Vim, щоб зробити ctrlx- ctrloпрацювати, як очікувалося, на імена методів / властивостей у блоках JS та властивості / значення в блоках CSS. Однак у цього підходу є і свої недоліки (дивне відступ ...).


Як ви робили ці класні виглядаючі клавіші?
Максим Слойко

1
Ха-ха, це <kbd> </kbd>. У веб-переглядачах зазвичай немає типового стилю для цього тегу, передайте команді SO для додаткової роботи.
romainl

спасибі romainl, але у вас є проблема з autoComplPop, це робота лише з html-файлом без js та css та php
Tarek Saied

Як і багато плагінів Vim, acp дуже чутливий до файлів. Якщо тип файлу буфера "html", ні вбудований, ні acp, ні omni повноцінний не працюватимуть для вбудованого JS / CSS / PHP. І я збираюсь відредагувати свою відповідь, тут недостатньо варіантів редагування / номер.
romainl

Ви можете скористатись поточною гілкою технічного обслуговування snipMate, що Rok Garbas & co. скласти докупи.
thisgeek

8

Цей плагін також корисний: https://github.com/maksimr/vim-jsbeautify . Він забезпечує повне автоформатування для JavaScript. Один натискання клавіші, і ваш код виглядає красиво. Це може стати в нагоді і при вставці фрагментів коду. Він використовує популярний js-красувач, який також можна знайти як онлайн-додаток. Останнє можна знайти тут: http://jsbeautifier.org/ .


3
Я написав загальний плагін для автоматичного форматування для vim, який інтегрує js-красувач тощо. Перевірте тут: github.com/Chiel92/vim-autoformat
Chiel ten Brinke

prettitier - найкращий
Alex Shwarc

6

Я використовую лише один js-плагін для vim - jslint.vim - https://github.com/hallettj/jslint.vim, який перевіряє ваш код за допомогою правил jslints і також дає помилки у синтаксисі.


дякую, але я думаю, що у мене проблематичний погляд на img69.imageshack.us/img69/7629/11142565.png
Тарек Саєд,

Гм, на Windows є конкретні інструкції, які вам потрібно буде дотримуватися, для цього потрібен інтерпретатор javascript. Я не намагався встановити його на Windows, але інструкції з установки трохи внизу сторінки в README, вибачте, я не можу більше допомогти там.
Скотт

3

Для виправлення відступу та автоматичного форматування (Ctrl =): відступ JavaScript

Щоб встановити ширину відступу, додайте javascript.vimфайл у dir ~ / .vim / ftplugin dir із наступним вмістом (для двох відступів простору):

 setl sw=2 sts=2 et

в ~/.vimrc:autocmd FileType javascript setlocal sw=2 ts=2 sts=2
JuanPablo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.