JavaScript kodlaması için önerilen Vim eklentileri? [kapalı]


125

JS & Vim'de yeniyim. Hangi eklentiler Javascript kodu yazmama yardımcı olur?


6
Soruya daha fazla netlik kazandırmak ve OP'nin gelecekteki gönderilerinde İngilizce dilinde yardımcı olması için ... "Merhaba, JS & Vim'de yeniyim. Hangi eklentiler Javascript kodu yazmama yardımcı olur?" Sen "Ben yeniyim diyebilirim için Javascript ve vim". Tekil için "ne" yi kullanabilirsiniz, örneğin " Bana yardımcı olacak bir_ eklenti nedir ..." veya çoğul için "hangisini" kullanabilirsiniz: " Hangi_plugins bana yardımcı olur ...". Ayrıca yerine "eklentileri haber ise " sen "eklentileri kullanmalısınız olur o varsayımsal var" çünkü. Umarım yardımcı olur :-)
hendrixski

3
@hendrixski - bunu yeniden açmak için oy verin.
ocodo

8
Şimdiye kadarki en yapıcı olmayan soru.
Vladislav Zorov

8
Bu "yapıcı olmayan" sorunun iş akışımı geliştirmeme nasıl yardımcı olduğunu çok beğeniyorum.
MaiaVictor

Soru (haksız bir şekilde IMO) kapalı olduğu için, buraya bir yorum ekleyeceğim: Kutudan çıkan daktilo dil sunucusu otomatik tamamlama özelliğine sahip NeoVim için elektron tabanlı bir ön uç var (vanilya JS ile de çalışır!): Onivim.io . Hala sınırlarda biraz sert ama birkaç haftadır günlük sürücüm olarak kullanıyorum ve çok fazla sorun yaşamadım. Çevresinde gerçekten iyi bir topluluk var ve çok yoğun bir gelişme altında , bu yüzden gelecekte ondan iyi şeyler bekliyorum! Tam açıklama: Projeye aylık bağışta bulunuyorum ve gelecekte katkıda bulunmayı planlıyorum.
Parker Ault

Yanıtlar:


116

Sözdizimi Denetimi / Linting

JSLint'i veya topluluk odaklı jshint.com'u (çok daha iyi IMO) Syntastic Vim eklentisini kullanarak Vim ile entegre etmenin çok kolay bir yolu var . Daha fazla bilgi için diğer gönderime bakın .

Kaynak Kod tarama / Etiket listesi

Etiketi listeleme Mozilla'nın kullanarak eklemek için bir çok düzgün bir yol bulunmaktadır DoctorJS (eski jsctags da kullanılır), Cloud9 IDE 'nin Ace Online editörü .

  1. Favori paket yöneticinizi (Ubuntu apt-get, Mac'in evibrew vb.) Kullanarak aşağıdaki paketleri kurun :
    1. exuberant-ctags
      • NOT: Kurduktan sonra , işletim sisteminin önceden kurulu değil, ctagsgerçekten çalıştığından emin olun . Çalıştırarak öğrenebilirsiniz .exuberant-ctagsctagsctags --version
    2. node (Node.js)
  2. Klon DoctorJSgithub dan:git clone https://github.com/mozilla/doctorjs.git
  3. DoctorJSDir içine gidin ve make install(Ayrıca makeuygulamanın yüklü olmasına da ihtiyacınız olacak , ancak bu çok basit).
    • Eklentiyi kurarken bazı hatalar var make install, şu an için hile yapmıyor. Şimdilik bin/deponun dizinini $ PATH'ıma ekliyorum . Daha fazla bilgi için DoctorJS'nin GitHub ve sayı sayfalarına bakın.
  4. TagBar Vim eklentisini kurun ( NOT: Bu TagBar, eski kötü şöhretli TagList değil!).
  5. KAR. :)

Yeni Proje - Tern.js

DoctorJS şu anda öldü . Tern.js adında yeni bir gelecek vaat eden proje var . Şu anda erken beta aşamasındadır ve sonunda yerini alacaktır.

Tern'i motoru olarak kullanan ramitos / jsctags projesi var . Sadece npm install -gbu ve tagbar otomatik olarak javascript dosyaları için kullanacaktır.


5
TagBar için +1 (sadece TagList'in farkındaydı!)
RobM

9
Şu anda doctorjs belirtilen klon özyinelemeli gerektirir Bu hata , git clone --recursive https://github.com/mozilla/doctorjs.gitçalışması gerekir make install sonra ve
Andy Ray

1
Windows üzerinde doctorjs: baumichel.blogspot.ca/2011/11/... Tagbar ek dosya türlerini ekleme: github.com/majutsushi/tagbar/wiki
Andrew

6
Doctorjs içine adım 3, cd yapmadan önce ve bunu: git submodule init && git submodule update. Sonra 3. adımı uygulayın.
glortho

2
Brew komutu aslındabrew install ctags-exuberant
sym3tri

17

SnipMate , TextMate'in ekleme sistemini öykünür ve varsayılan olarak (diğerlerinin yanı sıra) bir dizi yararlı JS parçacığı ile birlikte gelir. Kendinizinkini eklemek son derece kolaydır.

javaScriptLint Eğer karşı kodu doğrulamak için izin verir JSL.

Ayrıca vim.org'da çeşitli JavaScript sözdizimi dosyaları bulabilirsiniz. Bunları deneyin ve hangisinin size ve kodlama stilinize en uygun olduğunu görün.

Yerli omnicomplete ( ctrlx- ctrlo) benim için çok iyi çalışıyor. AutoComplPop ile daha dinamik hale getirebilirsiniz , ancak bazen can sıkıcı olabilir.

tarek11011'in yorumuna yanıt olarak düzenleyin:

acp varsayılan olarak JavaScript için çalışmaz, biraz ayarlamanız gerekir. İşte bunu nasıl yaptım (kirli hack, ben hala bir Vim noob'um):

Vim-autocomplpop / plugin / acp.vim'e ekledim phpve javascript(ve actionscript) behavsşöyle görünmesi için:

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

Biraz aşağıda, buna benzer bir dizi kod bloğu var:

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

Bunu kopyaladım ve şöyle görünmesi için biraz düzenledim:

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

ve actionscript ve php için aynısını yaptı.

Düzenleme JS / yapabileceğiniz HTML belgesi içinde CSS isterseniz: Vim'ın komut satırında set ft = html.css.javascript yapmak ctrlx- ctrloişi yöntemine beklendiği gibi / CSS bloklar halinde JS blokları ve özellikleri / değerlerinde özellikleri isimler. Ancak bu yaklaşımın da dezavantajları vardır (garip girinti…).


Bu harika görünümlü tuş vuruşlarını nasıl yaptınız?
Maxim Sloyko

1
Haha, bu <kbd> </kbd>. Tarayıcıların genellikle bu etiket için varsayılan bir stili yoktur, fazladan işi yapması için SO ekibine tebrikler.
romainl

teşekkür ederim romainl, ama autoComplPop ile ilgili bir sorununuz var, sadece html dosyasıyla çalışıyor js, css ve php yok
Tarek Saied

Birçok Vim eklentisi gibi acp de dosya türlerine karşı çok hassastır. Arabelleğin dosya türü "html" ise, ne acp ne de omni complete gömülü JS / CSS / PHP için çalışmaz. Ve cevabımı düzenleyeceğim, burada yeterli düzenleme seçeneği / oda yok.
romainl

SnipMate'in Rok Garbas & co'nun mevcut bakım dalını tercih edebilirsiniz . bir araya getirmek.
thisgeek

8

Bu eklenti ayrıca kullanışlıdır: https://github.com/maksimr/vim-jsbeautify . Javascript için tam otomatik biçimlendirme sağlar. Tek tuşa bastığınızda kodunuz güzel görünür. Kod parçacıklarını yapıştırırken de kullanışlı olabilir. Çevrimiçi bir uygulama olarak da bulunabilen popüler js-güzelleştiriciden yararlanır. İkincisi tam burada bulunabilir: http://jsbeautifier.org/ .


3
Vim için js-beautifier ve daha fazlasını entegre eden genel bir otomatik biçimlendirme eklentisi yazdım. Burayı
ten

güzel - en iyisi
Alex Shwarc

6

Yalnızca js'ye özgü bir vim eklentisi kullanıyorum - jslint.vim - https://github.com/hallettj/jslint.vim, bu kodunuzu jslints kuralları ile doğrular ve size sözdizimi hataları da verir.


teşekkürler ama sanırım bir sorunum var img69.imageshack.us/img69/7629/11142565.png
Tarek Saied

Hm, Windows'ta izlemeniz gereken özel talimatlar vardır, bir javascript yorumlayıcısı gerektirir. Windows'a yüklemeyi denemedim, ancak yükleme talimatları README'de biraz sayfanın alt kısmında, üzgünüm orada daha fazla yardım edemiyorum.
Scott

3

Girintiyi ve otomatik biçimlendirmeyi düzeltmek için (Ctrl =): JavaScript Girintisi

Girinti genişliğini ayarlamak için, javascript.vimdosyayı aşağıdaki içeriklerle ~ / .vim / ftplugin dizinine ekleyin (iki boşluk girintisi için):

 setl sw=2 sts=2 et

in ~/.vimrc:autocmd FileType javascript setlocal sw=2 ts=2 sts=2
JuanPablo
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.