Günlük işim Java/web geliştiricisidir. ~ 5 yıldır Eclipse kullanıyorum. Ben onun mükemmel düşünüyorum ve ayrıca javascript ve html/jsp için Webstorm kullanın.
Bazen sunucuya ssh ve yapılandırma dosyaları ile karışıklık yapmak gerekir; bunun için vi kullanıyorum ve bu acı veriyor. Ben sözdizimi/komutları listeleyen bir web sitesi almak zorunda: basın kaçış, sonra asterix, üç kez dönün ve metin imlecinizin iki satırına girilecektir . Bu benim için kasıtsız ve seksenli yılların sonlarında doksanlarda büyüdüğümü hayal ediyorum.
Eclipse'in parlak olduğunu düşünüyorum (ve diğer IDE'leri varsayalım) ve emacs ve/veya vim'e geçmiyorum.
Duyduğum argümanlardan biri, emacs/vim ile kendi eklentilerinizi oluşturabileceğinizdir - tamam, ama bunu Eclipse'de de yapabilirsiniz. Ama her şey zaten orada olduğu için buna gerek yok! Bu yarı inşa edilmiş arabayı satın almak gibi, gerisini kendiniz inşa edebilirsiniz.
İnsanlar neden emacs/vim kullanıyor? Bunu kullanan insanlar aslında büyük organizasyonlardaki karmaşık nesne yönelimli projeler üzerinde çalışıyor mu?
vim/emacs'a geçmenin nedenleri nelerdir. Geçersem üretkenliğim nasıl artar?
İhtiyacınıza uygun aleti kullanın. Uzak bir sunucuya giriş yapmanız ve bir yapılandırma dosyasını veya benzer bir şeyi düzenlemeniz gerektiğinde VIM veya Emacs'ı bilmek iyi bir şeydir. VIM 'i gayet iyi biliyorum, ama Java'da geliştirmek için kullanmam. Eclipse, Netbeans vb.
Emacs ve Vi'nun hala bir yeri var.
Bunlar, Unix ve Unix benzeri ortamlarda her yerde bulunur ve diğer birçok popüler platforma yüklenebilir.
Popüler ve stabildirler, bu yüzden onları bir kez öğrenmek uzun vadede işe yarar.
Bir metin terminali üzerinde çalışırlar, böylece telnet ve ssh oturumlarında kullanabilirsiniz.
Çok yeni ve çok nadir diller de dahil olmak üzere çok çeşitli diller için düzenleme modları ve sözdizimi vurgulama sağlarlar. (Bu benim en sevdiğim avantajlardan biri.)
Bununla birlikte, bu programları anlamanın anahtarı, başlangıçta hangi problemleri çözmeyi amaçladıklarını bilmektir. Vi için bu, 300 Baud kadar yavaş olan terminal bağlantıları üzerinden metin dosyalarını düzenlemekti. Bu ortamda menüleri görüntülemek veya ekran içeriğinden kaçınabilmeniz için kökten değiştirmek istemezsiniz.
Emacs daha hızlı bir ortamda kullanılmak üzere tasarlandı. Gücü, bir kez yüklenebilmesi ve asla çıkılmamasıydı. Kullanıcı, Emacs'tan ihtiyaç duyduğu diğer herhangi bir görevi, ayrılmadan ve genellikle komut satırından yapmak zorunda olduğundan daha kolay bir şekilde gerçekleştirebilir. İnsanların Emacs penceresi açık bir grafik masaüstü ortamı yoktu. Emacs, kullanıcının hemen hemen her normal görevi (ve birçok garip görevi) birkaç tuş vuruşuyla gerçekleştirmesini sağlar. Yerleşik olmayan herhangi bir şey yazılabilir.
Açıkçası, bu programlar başlatıldığından beri insanların ihtiyaçları çok değişti, ancak yine de bazı gerçek güçleri var. Her ikisinin de temellerini öğrendim ve haftalık olarak kullanıyorum. Yine de, güçlü yanlarının genellikle abartıldığını düşünüyorum. O kadar efsanevi bir duruma ulaştılar ki, insanlar zayıflıklarını kabul etmiyorlar ve bunun yerine Emacs/Vi onları Eclipse veya Visual Studio'dan daha üretken hale getirmezlerse yanlış bir şey yaptıklarını düşünüyorlar.
Şimdi konuya gelelim.
Java, Eclipse'de mükemmel desteğe sahip popüler bir dildir ve olasılıklar, hızlı bir şekilde ortak görevleri gerçekleştirmenize ve başkalarını IDE'niz olmadan yapmanıza izin veren modern bir işletim sisteminde kod geliştiriyor olmanızdır. Geçiş yapmanın mantıklı olacağını düşünmüyorum.
5 yıldan fazladır emacs kullanıyorum. Artık kullandığım tuş kombinasyonlarını anlatamıyorum, parmaklarım onları hatırlıyor ve sadece ellerimin ne yazdığını görmek için klavyeye bakmak zorunda.
Birkaç yıl önce Eclipse'i kullanmaya başladım ve emacs'a özgürce geri dönme şansım yok. Üzgünüm kas hafızası, seni özlemiş olmana rağmen
C-x r SPC 1, Eclipse beni çok daha üretken yapıyor ve önemli olan bu.
Hayır, geçiş yapman gerektiğini sanmıyorum, ama vim'in temellerini öğrenmek için birkaç saat ayırmalısın, böylece artık aramana gerek yok.
Neden vim veya emacs'a geçmeliyim?
Büyük olasılıkla, değiştirmemelisiniz . Vim mükemmel, güçlü bir metin editörüdür, ancak değil bir IDE'nin yerine geçer ve olmamalı ! Tutulma çok iyi IDE'ye özgü şeylerin alt kümesi ve vim, metin düzenlemeye özgü şeylerin alt kümesinde çok iyidir. Her birinin kendine özgü, farklı bir odağı vardır.
VIM işlevselliğini genişleten eklentiler olduğunu biliyorum, böylece aynı IDE'ye özgü şeylerin çoğunu anlayabiliriz IDE olabilir. Ama yine de vim'in ana gücü değil ve bir IDE bunu neredeyse her zaman daha iyi yapabilecektir. Çünkü odaklandıkları şey budur.
Günlük işimde yaptığım şey C # 'ı düzenlemek için Visual Studio ve vim' i kullanmak. Benim için çok iyi çalışıyor ve hiçbirini sadece diğerine güvenmek için kesmem.
Emacs kadarıyla, ben uzman değilim, ama Eclipse's IDE özellikleri söz konusu olduğunda Java (lütfen düzeltin) LISP'de geliştiriyorsanız, o zaman kesinlikle mükemmel bir IDE olarak kabul edilebilir, ancak Java için aynı desteğe sahip olduğunu düşünmüyorum.
Eğer Eclipse ile birlikte kullanmak için daha güçlü bir metin editörü istiyorsanız, o zaman kesinlikle vim veya emacs öğrenmenizi tavsiye ederim. Ancak bir yedek olarak değil, bir yedek olarak . Her ikisinin de özellikle kolay bir öğrenme eğrisi olmamasına rağmen, uzun vadede gerçekten ödeyebilir:)
Temel olarak, Emacs'ın neden güçlü olduğunu görmek için this (PDF) sayfasını okuyun. LISP'yi öğrendikten sonra, uzantıları yazmak neredeyse önemsizdir (kendime
employer-mode Adında yazdığım bir eklenti tarafından yazılmış birkaç kaynak kontrolü iş akışı ve dağıtımım var). Yukarıda listelediklerinizle ilgili olarak;
REPLs'sini kolayca bu dile entegre edebilirsiniz. Şu anda,
Ruby,
python,
haskell,
common LISP,
schemeve
erlangvar. . Bu arada, JavaScript eklentisi
js2-modeTam artımlı "derleme" ye sahiptir, bu nedenle sizin için sözdizimi hataları gibi şeyleri vurgular, bu yüzden kesinlikle mümkündür, ancak norm değil
autocomplete.eladlı bir eklenti var, inanıyorum, Emacs wiki
git-modeVar, diğer kaynak kontrolü hakkında emin değilim
Bununla birlikte, LISP'den hoşlanmıyorsanız ve onu öğrenmek istemiyorsanız, Emacs'ı dürüstçe tavsiye edemem. Bundan elde ettiğiniz kazanç, bir takım hazır modlar elde etmek ve bunları bir araya getirmek değil, araç üretmeyi öğrenmek ve kendi üretkenliğinizi artırmak için bu ilkeleri uygulamaktır.
Burada iki seçenek görüyorum:
nano somefile.confve güzel bir editör var. Hatta sözdizimi vurgulama ekleyebilirsiniz
Bu yardımcı olur umarım
Şahsen, Vim'i seviyorum çünkü metni düzenlemede son derece iyi, yani çok ergonomik (tuş bağlamaları ellerimi çok fazla zorlamıyor ve fareyi çok kullanmam gerekmiyor) ve asıldıktan sonra kullanımı verimli (yeni başlayanlar için en sezgisel editör olmadığından, elbette zaman ve sabır alacaktır).
Ancak büyük ölçekli Java geliştirme mevcut birçok özellik nedeniyle geliştirme için Eclipse tercih ederim. Tabii ki, orada bazı eklentiler Eclipse biraz yapabilirsiniz daha tolere edilebilir.
Şu anda NetBeans vim geçmek çalışıyorum. Vim öğrenmek zaman ve pratik gerektirir, ancak avantajlarını görüyorum, bazı durumlarda "GUI editörleri" diyelim.
Ama sizden farklı olarak, çoğunlukla Ruby kodluyorum ve NetBeans ve Eclipse'nin sunduğu kod üreten, otomatik tamamlama, kodumu yeniden düzenleyen kara büyüye ihtiyacım yok. Ben Java veya C # kodlama olsaydı ben kesinlikle hiç geçiş deneyin olmaz.
Uzun zamandır emac kullanıcısı olarak, emac'ları bir düzenleme ve geliştirme ortamı olarak oldukça rahat buluyorum (ve bir dereceye kadar, aynı zamanda derleme süreci, sürüm kontrolü, hızlı bağlama duyarlı arama ve benzeri ile de entegre oluyor, bu yüzden bir "IDE" olarak).
Ayrıca vi ve vi benzeri editörleri kullanmakla gerçekten rahatım (ed kullanmaya başladım, çünkü emacs'ın çok karmaşık olduğunu düşündüm; geriye dönük olarak, ancak vi'nin gelecekteki öğrenmesi için sağlam bir temel verdi). Vi'yi öncelikle "küçük hızlı düzenlemeler" için, özellikle emac'lerin yüklü olmadığı uzak makinelerde kullanırım.
"Zaman zaman sunucuya ssh yapmak ve yapılandırma dosyaları ile uğraşmak gerekir; bunun için vi kullanıyorum" senaryosu için, vi hakkında küçük bir komut seti ve bazı genel düşünceler tavsiye ederim:
"Güvenle bir metin dosyasını düzenleyebilirim, ancak onunla verimli olmayabilirim" de olmak için vi ile oynamanın bir veya iki saatten fazla sürmemesi gerekir ve bu muhtemelen olması gerektiği kadar iyi . Başarısız olursa, sekmeler ve boşluklar arasında otomatik dönüştürme konusunda hata yapmayan herhangi bir düzenleyici, amaçlarınız için "yeterince iyi" olmalıdır. Eclipse uzak sunucularınıza tüm yüklüyse, bunu gerçekten büyük bir sorun olarak görmüyorum.
Eclipse'den memnunsanız geçiş yapmayın.
Eclipse'i ihtiyacınız olan her yerde kullanabiliyorsanız, geçiş yapmayın.
Projeniz/şirketiniz hemen hemen yalnızca Eclipse kullanıyorsa, geçiş yapmayın.
Nadiren başka bir şeye ihtiyacınız varsa, editörlerden biri için bir cheat-sheet yazdırın ve ihtiyacınız olduğunda çekmeceden dışarı çekin ve Eclipse kullanmaya geri dönün.
SO ile ilgili aynı soruya bakın: https://stackoverflow.com/questions/1346820/what-are-the-efficiencies-afforded-by-emacs-or-vim-vs-Eclipse
"Bunu kullanan insanlar aslında büyük kuruluşlardaki karmaşık nesne yönelimli projeler üzerinde çalışıyor mu?" - Şapka oğluna tutun, ama cevap "evet". Bu soruyu sormak için kullandığınız bilgisayarı çalıştıran CPU'yu tasarlamanın kritik yolunda kullanılan on milyonlarca satır kod içeren projelerde çalıştım. Ve insanlar Eclipse'i denedi ama çok yavaş ve hantal buldular (itiraf etmek gerekirse Java kullanmıyorduk).
Ben çok Emacs'ım. Tüm programlamam için kullanıyorum ve çalışma arkadaşlarımı da aktif olarak kullanmaya teşvik ediyorum (ve beni aktif olarak görmezden geliyorlar). Herhangi bir IDE'den çok daha üretken buluyorum ve asla değişmeyeceğim.
Java veya C # yazmadıkça (ve bu kategoride başka diller olduğunu hayal etmedikçe). şeylerin uzun adlarla, Emacs kullanarak elde edilen kazanımların [~ # ~] i [~ # ~] hatırlamaya çalışırken tamamen kaybedildiğini herşey.
Kesinlikle vim ve/veya Emacs'ı denemenizi öneririm. Ama muhtemelen Eclipse for Java'ya geri döneceksiniz.
Hem emacs hem de vim çok yapılandırılabilir ve güçlü editörlerdir ve her ikisi de temel kavramlar kavranınca büyük verimlilik kazançları sağlar.
Vi, esasen sete dayalı operasyonlarla kazanır. Örneğin, sınıf tanımındaki tüm "foo" örneklerini "bar" olarak değiştirmek tek satırlıdır.
Emacs aynı derecede güçlüdür, ancak Emacs LISP'yi tam potansiyeline kullanmak için öğrenmeniz gerekir.
Her iki durumda da, her şey için emacs veya vi kullanmayı planlıyorsanız değiştirmeye değer.
En iyi araç (kısa vadede) son derece yetkin olduğunuz araçtır.
İnsanlar 30 yılı aşkın bir teknolojiyi kullanıyorlar çünkü teknoloji konusunda oldukça yetenekliler. İş akışlarını ve alışkanlıklarını bu araçların etrafında oluşturdular. Eğer modern IDE gibi Eclipse gibi) daha fazla bilgi sahibi iseniz, geçiş yapmak için fazla bir neden yoktur. Mylyn ).
Şahsen her iki program da beni duvardan yukarı itiyor. Eclipse ile ilgili sorun, büyük bir proje üzerinde çalışırken sümük gibi yavaş olmasıdır ve o zaman 'DGLP Endeksleme' ya da her ne yapmaz. deponuzu yenilemek mi istiyorsunuz? 15 dakikanız var mı? Oh ve Ctrl-C bazı metin sonra Ctrl-P nerede bir yerde bu şık hile hakkında ama bunun yerine istediğiniz yere gidiyor tamamen farklı bir dosya açar ve başka bir şey üzerine yapıştırır ve wtf orada olduğunu merak bıraktı ilk başta. Oh ve ben bir vpn üzerinde büyük bir projede Eclipse ile çalışmaktan bahsetti mi? neredeyse imkansız.
Vim'e gelince, güzel ve hızlı bir şekilde, kendinizi bir bilinmeyen modda yanlışlıkla bulursanız, bir şey ve iyi şanslar yapmak için tamamen anlamsız tuş kombinasyonlarının çoğunu bildiğinizi varsayar. Ayrıca vim ile doğru dosyaları açmak için kafanızdaki tüm proje dizin yapısını bilmek zorundasınız. Vim'in ana avantajı, teoride daha hızlı kod oluşturabilmenizdir çünkü tüm anahtarlarıdır, ancak gerçekte ne kadar metin yazdığımı umursamıyorum, kodun kalitesine ve genellikle kaliteye önem veren metnin hacmi değil kod yazmak için doğru şeyi (genellikle çok kısa) anlayana kadar saatlerce düzinelerce dosyaya bakmayı gerektirir.
Ne diliyorum biri aslında yanda Eclipse gibi bir dizin yapısı veya genişletmek/daraltmak ve dosyaları açabilirsiniz bir şey vim gibi bir komut satırı programı yazmak olacaktır. Böyle bir şey bilen var mı?
Mevcut çeşitli UNIX editörleriyle sorunum yok, ancak bunları sadece protesto altında kullanıyorum. Söylediğim gibi, onlarla ilgili bir sorunum olduğu için değil, çünkü bunları kullanmak zorunda kalırsam konuşlandırma sürecimizin bir şekilde eksik olduğu anlamına geliyor.
Bu muhtemelen biraz daha bağlamı hak ediyor: Büyük ölçekli e-ticaret çözümleri üzerinde çalışıyorum, sistemlerimizin çalışmasını yöneten her şey tek tıklamayla oluşturma/dağıtma işlemi tarafından üretiliyor. Bir dizi test ortamımız var, bu yüzden herhangi bir zamanda Eclipse aracılığıyla bir değişiklik yapabilirim, cvs'ye kontrol edebilirim ve düzeltimin çalıştığını kanıtlamak için bir derleme/dağıtımı tetikleyebilirim. Yani - 'vi'da hack edersem, o zaman bir dağıtımın 1 saatlik geri dönüşünü bekleyemeyeceğimiz veya dağıtımın düzenlemekte olduğum dosyaları kapsamadığı ve bunun için genişletilmesi gerektiğinden yani (aksi takdirde söz konusu dosyanın değişmesi gerektiğinde vi'da hackleneceğim).