Vim veya Emacs .Net veya Java gibi diller için pratik midir? [kapalı]


18

Bu nedenle, öncelikle Java, Python ve zaman zaman birkaç başka şey yapan bir .Net geliştiricisiyim. Bir çok insan Vim ve Emacs'ı temelleri çivilediğinde verimliliği arttırmak için övdü. Yeterli pratikte özelliklerden kaçının çok yararlı olabileceğini kesinlikle görebiliyorum ve hatta öğrenme eğrisinin çabaya değdiğine inanıyorum. Ancak ... ortalama bir geliştiricinin Visual Studio, Netbeans, Eclipse veya diğer platformlarda olduğu gibi Vim veya Emacs'ta verimli olmak için gerçekten bir çeşit makro ve kısayol sihirbazı olmanız gerektiği anlaşılıyor. Vim'i kullanmayı öğrenmeye başladım ve bazı özelliklerinin harika olduğunu düşünüyorum (örneğin sütun düzenleme), ancak ağır IDE'ler tarafından sağlanan araçların çoğunun en sık kullanılan metni bile satın alamadığı anlaşılıyor editör.

  • Linq-to-SQL için dbml dosyaları oluşturma
  • Otomatik test
  • kullanıcı arayüzü tasarlama
  • Proje ve çözüm oluşturma / organize etme

Vim ve Emacs'ın VS'nin yapabileceği çok şey aynı şeyi çok güçlü bir şekilde yapabileceğini biliyorum. bu platformlarda çalışan birinin aslında Vim veya Emacs'tan faydalanacağını?


2
Eclipse'de dükkanımda çalışıyoruz, ancak burada Vim'i pimary editörü ve Eclipse'i sadece derleme ve kod yönetimi tipi görevler için kullanan bir adam var.
Michael K

Yanıtlar:


14

Orada devam eden kavramların bir karışımı var, bu da şaşırtıcı değil, çünkü VS çok farklı özellikleri bir araya getiriyor. Bir teklif (bu siteden) Emacs'ın iyi bir IDE olmadığını, Unix'in iyi bir IDE olduğunu göstermektedir. Fikir şu ki, Linux / Unix dünyasında, hepsini yapan tek bir yekpare araç yerine birlikte iyi oynayan çok sayıda özel araca güveniyorsunuz.

Şimdi öncelikle C # programlıyorum ve bunu yapmak için VS kullanıyorum. Ayrıca Emacs'ı gerçekten seviyorum ve temelde her şey için kullanıyorum. Şimdi, dediğiniz gibi, Emacs'ta neler yapabileceğiniz ve Emacs'ta daha iyi ne yapacağınız farklı. Ancak çoğu durumda bire bir eşleme değildir ve bir metin düzenleyicisi ve / veya diğer araçları kullanarak aynı hedeflere ulaşmanın farklı yolları vardır.

Başlangıçta her bir noktanıza değineceğim, ama cevap her zaman bir şekilde "evet, yapabilirdiniz" şeklinde kaynıyordu. Genellikle şunlardan birine güvenirsiniz: 1) sizin için kod oluşturmak için bir dış araca (bir UI tasarımcısı gibi), onu içe aktarın; 2) tekrarlayan görevleri otomatikleştirmek için editör içinden otomasyon desteği (Emacs'ta Elisp kodu gibi); veya 3) görsel araçlar yerine metin tabanlı araçlar kullanmaya ayarlayacaksınız (MSBuild kullanmak ve VS kurulumuna güvenmek yerine kendi proje dosyalarınızı yazmak gibi).

Emacs dünyasında, hepsini yapan bir aracınız yok, çok fazla aracınız ve ihtiyacınız olduğu kadar daha fazla araç geliştirme yeteneğiniz var. Tüm bunları yapmak için henüz yeterince iyi bilmiyorum, bu yüzden VS kullanıyorum ve bana verdiği araçlardan memnunum. VS gerçekten güçlü, gerçekten iyi bir IDE. Şimdi Java yapsaydım, Eclipse veya IntelliJ'i çok iyi bilmediğim için hangi aracı kullanacağımı tartışmam gerekirdi. Başka herhangi bir dil için Emacs kazanır çünkü benim için bu dillerin kullanabileceği diğer metin editörlerinden veya yarı mamul IDE'lerden çok daha fazlasını yapacak. (Smalltalk hariç, ama bu benzersiz bir durum.)


6

ancak bu platformlarda çalışan birinin gerçekten Vim veya Emacs'tan fayda sağlayacağını söylemek gerçekçi midir?

Size bir örnek vereyim: C # ile büyük oranda kodlanmış (ancak% 100 değil) bir sistem üzerinde çalışıyorum. Sistem Visual Studio'dan oluşturulamıyor - çok karmaşık. Bu nedenle, bir sln dosyam yok (bazı insanlar onunla ürünü oluşturmamamıza rağmen birini korumayı denedi, ancak bu imkansız bir görev olduğu ortaya çıktı) ve intellisense, kod tarama, sınıf diyagramları, vb. Benim için çalışan araç vim + ctags. Bu bile mükemmel değil (ctags'ın karıştırılması kolaydır), ancak kod tarama desteği olmayan düşük bir kod düzenleyicisi kullanmaktan daha iyidir.

Şimdi, çoğu .NET veya Java geliştiricisinin benimle aynı konumda olmadığını ve iyi bir kod düzenleyicisine veya en azından varsayılanı geliştiren bir eklentiye sahip olması durumunda muhtemelen bir IDE kullanmaktan daha iyi olduklarını anlıyorum. Visual Studio için VsVim gibi kodlama deneyimini daha keyifli hale getirebilecek eklentiler var. Eclipse AFAIK için de aynı şey geçerli.


3

Artık VIM veya Emacs kullanan birçok kişi olduğundan şüpheliyim. Ancak, bazı şeyler için, genellikle birçok şey için tam bir IDE'nin ışığında (bu ya da başka bir şey olsun) bir metin editörü kullanmayan bir geliştirici bulamadım.

İşinizde Java, C # veya C ++ kodu yazmaktan çok daha fazlası olduğunu unutmayın. ANT komut dosyaları, makefiles, XML dosyaları, birçok türde yapılandırma dosyaları var. Ve birçok küçük görev için, bu IDE'nin başlama zamanı çok uzun olabilir. Tutulmanın başlaması birkaç dakika sürebilir, VS benzer. Tek bir kaynaktaki bir şeyi hızlıca değiştirmek veya bilinen bir dosyadaki bir şeyi kontrol etmek çok uzun. Dosyayı VIM'e yüklemek yalnızca birkaç saniye sürer.


1
notepad ++ olsa da.
Raffael

hiç kullanmadım, ama gerçekten başkalarının kullandığını gördüm (ben bir VIM flunky :)).
jwenting

2

Bir IDE ve vim (kişisel favori editörüm) kullanmanın birbirini dışlayan kavramlar olmadığını düşünüyorum. .NET geliştirme yaparken, genellikle vim içinde IDE üzerinde çalıştığım dosyayı açıp imleci aynı yere koyacak bir kısayol tuşu kombo oluşturdum. Bu şekilde, vim'in harika olduğu şeyleri yapmak istiyorsam, (makroları kullanmak, dikey düzenleme, yeniden girinti yapmak, farklılaştırmak vb.), O zaman anahtar komboyu vurdum ve en sevdiğim düzenleyicim var, benim değişiklikleri, dosyayı kaydedin ve çıkın, ve sonra tekrar IDE içine geri (VS VS IDE dışında düzenlendiğinde dosya otomatik olarak yeniden yüklenecek şekilde ayarlayabilirsiniz). Bu şekilde her iki dünyanın da en iyisini elde ederim.

Metin dosyalarını karmaşık şekillerde işlemek için kodlama dillerini kullanırdım. Vim'in makrolarını (ve diğer bazı özellikleri de) kullanmanın gücünü keşfettikten sonra, bu tür düzenlemeleri / manipülasyonları bir komut dosyası diliyle yapabileceğimden çok daha hızlı ve verimli bir şekilde yapabileceğimi keşfettim.

Vim kullanarak bazı karmaşık şeyler yapmak için bir kabuk dışı komut dosyası oluşturmak, inşa ettiğim kabuk komut dosyasını yürütmek ve sonra atmak benim için çok yaygın.

benim 2 sent :)


Evet, VS'nin beni emac'lara atlaması, emacs'ı "kod düzenleyici penceresi" olarak kullanması veya sadece emacs tuş bağlamalarını kullanması için birkaç eklenti ile oynadım. Bunlardan hiçbirini sevmedim. Emacs'ı açmak ve aynı imleç noktasına atlamak için bir makro olsa da oldukça güzel bir fikir gibi geliyor. Bunu denemek zorunda kalabilirim. Ağır metin manipülasyonu yapmam gerektiğinde çoğunlukla ikisi arasında kopyalayıp yapıştırıyorum.
CodexArcanum

0

OpenIDE ve Sürekli Testler projelerine göz atın . Birincisi, VIM ve Emacs dahil olmak üzere herhangi bir düzenleyiciye .NET proje desteği eklemeye odaklanır. Diğeri, ruby'nin AutoTest / pythons Sniffer / Autonose'a benzeyen sürekli bir test koşucusudur. Bir VS eklentisi veya bağımsız olarak çalışabilir.

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.