Vim'i Java IDE olarak kullanma ipuçları? [kapalı]


195

Vim'e bağımlıyım, artık metin dosyalarını düzenlemenin fiili yolu.

Bir IDE değil, esas olarak bir metin editörü olması, Java uygulamaları geliştirirken daha kolay hale getirmem için bana hile yapan biri var mı?

Bazı sorularım var:

  • Vi'dan ayrılmadan bir maven görevini nasıl çağırabilirim?
  • Kod tamamlama alabilir miyim?
  • Sözdizimi nasıl vurgulanıyor?

Bilmem gereken başka bir şey ("Yapma!" Dışında)?


1
Netbeans'i işyerinde yoğun bir şekilde kullanıyorum, ancak evdeki kişisel sunucum için ... NetBeans kullanmak iyi bir işe yaramıyor çünkü gelişimimi başka bir bilgisayarda yapmam ve sonra dağıtmam gerekiyordu. Gidiş dönüş çok uzun.
Allain Lalonde

1
@AdamC Burada Google'dan gelen ... Python'dan gelen kendini kabul eden bir komut satırı geek olarak, bir java geliştirme ortamı ile kurulum alma girişinin bu tür programlara ihtiyaç duyulmasıyla büyük ölçüde arttığını düşünüyorum. Zaten JVM'yi kurmak zorundayım ... neden sadece merhaba bir dünyayı devam ettirmek için DAHA FAZLA kurulum yapmak zorundasınız? Komut dosyası dillerinden gelen insanların java'yı ilk öğrendiklerinde sahip olacakları genel eğilim budur.
DeaconDesperado

2
VIM'de düzenleme yaparken. Konsola geri dönmek için, vim'i arka plana yerleştirecek ve sizi konsola geri getirecek olan ctrl + z yapabilirsiniz. Sonra vg'yi ön plana geri getirmek için fg komutunu kullanabilirsiniz
Matthew Kirkley


3
Ctrl + z / fg .. tuşlarına basmanız gerekmez: sadece şunu yazın:! Command ve 'command' çalıştırılacaktır. Hızlı bir kabuk istiyorsanız, şunu yazın:! Bash. o zaman çıkarsanız sarkan bir arka plan işi bırakmak yerine vim'e geri dönersiniz. Eklentileri olan bir vim penceresinde bir kabuk alabilirsiniz.
17'de fuzzyTew

Yanıtlar:


75

Bazı ipuçları:

  • Vim kullandığınızdan emin olun (vi geliştirilmiş). Linux ve UNIX symlink vi'dan vim'in bazı sürümleri.
  • Eclim ile kod tamamlama alabilirsiniz
  • Veya viPlugin ile Eclipse içinde vi işlevselliği elde edebilirsiniz
  • Vim ile sözdizimi vurgulama harika
  • Vim, ant / maven derlemeleri çalıştırmak gibi küçük makrolar yazmak için iyi bir desteğe sahiptir

İyi eğlenceler :-)


7
java sözdizimi vurgulama hakkında yardım almak için komut. : java.vim yardım
Michael Ekoka

2
Eclipse içinde Vim işlevselliğini elde etmenin başka bir yolu da Vrapper'dır . Vim anahtar bağlantılarının çoğuna sahiptir ve viPlugin'in aksine ücretsizdir.
n1te

1
Adım adım, adım adım vb. Destekleyen bir hata ayıklayıcıya ne dersiniz?
Donato

1
Linux ... symlink vi to vim Counterexample: Arch Linux
johnchen902

30

Yıllardır Vim kullanıcısıyım. Kendimi bazen Eclipse'i başlatmaya başladım (vi eklentisini kullanarak söylemeliyim ki çeşitli sorunları var). Bunun ana sebebi Java derlemelerinin biraz zaman almasıdır ... ve maven gibi son derece bileşenli yapı çerçevelerinin eklenmesiyle yavaşlar ve yavaşlar. Bu nedenle değişikliklerinizi doğrulamak oldukça zaman alıyor, bu da benim için genellikle daha sonra çözmem gereken bir sürü derleme sorununu yığılmasına yol açıyor ve taahhüt mesajlarını filtrelemek biraz zaman alıyor.

Derleme sorunları sıralamasından çok büyük aldığımda, Eclipse'i çalıştırıyorum. Değişiklikleri pasta yapmamı sağlıyor. Yavaş, kullanımı acımasız ve neredeyse bir Vim kadar güzel bir editör değil (Vim'i yaklaşık on yıldır kullanıyorum, bu yüzden benim için ikinci doğa). Hassas düzenleme için buluyorum - belirli bir hatayı düzeltmeye ihtiyaç duyuyor, belirli bir mantık parçasını veya başka bir şeyi yeniden düzenlemeye ihtiyacım var ...

Ayrıca bir ipucu:

:set path=**
:chdir your/project/root

Bu ^wf, bir sınıf adını büyük bir projede gezinmek için çok güzel bir özellik haline getirir .

Her neyse, sıska, yeni bir kod eklemem gerektiğinde, Vim sadece derleme sorunlarını ve benzer şeyleri kovalamak için harcanan zaman nedeniyle beni yavaşlatmış gibi görünüyor. Yine de belirli kaynakları bulup düzenlemem gerektiğinde, Eclipse bir balyoz gibi hissediyor. Hala Vim için sihirli IDE'yi bekliyorum. Bildiğim üç büyük girişim oldu. Çok sayıda özellik ekleyen ancak kullanımı imkansız görünen saf bir viml IDE tipi eklenti var. Çok fazla sorun yaşadığım eclim var. Ve Eclipse için aslında Vim'i ekleyen bir eklenti var. Sonuncusu, gerçek ciddi Java EE çalışması için en umut verici görünüyor, ancak çok iyi çalışmıyor ya da Eclipse'nin tüm özelliklerini gömülü Vim ile gerçekten entegre etmiyor gibi görünüyor.

Bir tuş vuruşu ile eksik bir içe aktarma, yazma sorunları olan hilight kodu, vb. Eklemek gibi şeyler, büyük bir Java projesinde çalışırken IDE'nizden çok değerli görünüyor.


5
"^ wf" için oy
vimde

4
^ Wf hakkında daha fazla bilgi verebilir misiniz? bu ne yapar?
user2427

1
Dosyayı bulabiliyorsa .java, imlecin altında java dosyasını / sınıfını (dosya adı uzantısı gerekli değildir) yeni bir bölünmüş pencerede açar. Bu yüzden :set path=**yardımcı olur.
exic

** tam anlamıyla iki yıldız mı?
taco

1
@lijat :help ^wf- tıpkı diğer vim yardımı gibi
JESii

22
  • Vi'dan ayrılmadan bir maven görevini nasıl çağırabilirim?

    Maven diğer kabuk komutlarından farklı değildir:

    :!mvn

    :set makeprg=mvnZaten için favori bir anahtar eşlemeniz varsa bunu yapabilirsiniz :make.

  • Kod tamamlama alabilir miyim?

    Evet, eclim harika , vim'in düzenleme verimliliği ile Eclipse'nin Java diline özgü farkındalığı arasında bir köprü.

    <C-n>ve <C-p>o kadar büyük değil, ama inanılmaz faydalı.

  • Sözdizimi nasıl vurgulanıyor?

    Normal ifade temelli highligher için yeterince iyi.

Kod şablonları ( snippetEmu — varsayılan snippet'ler emmek, ancak özelleştirilebilirlik parlar), kullanımları aramak ve bildirimlere gitmek (eclim, grep, ctags), alıcılar ve ayarlayıcılar ( java_getset , veya eclim), otomatik ithalat (eclim). Hızlı deneyler için bir java kabuğuna da ihtiyacınız olabilir ( BeanShell , aka bsh).


1
BeanShell ipucu için teşekkürler, bu araç hakkında bilmiyordum
GoingTharn



8

Bunun birkaç yıl sonra olduğunu biliyorum ama burada bazı ilginç eklentiler var. Bunlardan birini henüz denemedim, bu yüzden YMMV.

https://github.com/mikelue/vim-maven-plugin

https://github.com/vim-scripts/maven-ide

EDIT: Ah bir BTW, eclim off ve on denedim, ama vim sevmek nedeni hafifliği. Başsız modda bile tutulmanın yürütülmesi benim için çok fazla zihinsel kaldırma.

EDIT2: Son zamanlarda playframework kullanıyorum ve bu muhtemelen maven yapıları ile de çalışacaktır:

  • Derlemek için, VIM'in maven'i çalıştırmak için yapısını yapılandırabilirim ya da benim durumumda bir yapı betiği çalıştırabilir, bunu bir dosyaya ekleyebilirsiniz.

    autocmd Filetype java setl makeprg=play_compile
    autocmd Filetype java setl efm=%A\ %#[error]\ %f:%l:\ %m,%-Z\ %#[error]\ %p^,%-C%.%#
    

"play_compile" sadece bir derleme betiğidir. SBT kullanır, bu yüzden Maven burada iyi çalışmalıdır. Doğrudan javac bile çalışacaktır. Bu şekilde, VIM'in hızlı düzeltme arabelleğini (: cnext,: clist: cprev, vb.) Kullanabilirsiniz.

  • Sınıfların etrafında zıplamak için ctrl-p kullanıyorum . Bu güzel. Kullanın. Dosyaların etrafında atlamada tutulmadan daha hızlı.

  • Yöntemleri atlamak için coşkulu c-etiketleri ile tagsearch kullanıyorum. Ctrl-] kullanarak yöntem bildirimlerine atlayın. Ctrl-o tuşunu kullanarak geri dönün. Tutulma kadar iyi çalışmaz, ancak yeterince iyi çalışır.

  • Kod tamamlama için supertab kullanıyorum . Javacomplete oldukça yavaş, bu yüzden omni-complete ile devam ediyorum. Yine, tutulma kadar doğru değil, ama hızlı ve benim için yeterince iyi çalışıyor.


5

Vim kullanın. ^ - ^ (kesin olarak gVim)

Her şeye sahip olacaksınız (bazı eklentilerle).

Btw, snippetsEmu , yararlı snippet'lerle kodlama için güzel bir araçtır (TextMate'de olduğu gibi). Önceden hazırlanmış bir paketi kullanabilir (veya değiştirebilir) veya kendi paketinizi oluşturabilirsiniz.

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.