it-swarm.asia

Bir programcı Emacs ve Vim gibi metin editörlerini öğrenmeli mi? Ne kadar önemli?

Şimdiye kadar işletim sistemi ile gelen veya bir IDE bazı durumlarda kullanın geleneksel metin editörleri şimdiye kadar kod yazıyorum. Emacs gibi bazı gelişmiş metin editörleri biliyorum ve Vim sadece kodlayıcılar için kullanılabilir .. Gerçekten ne kadar önemli? PHP, Python vs. ile ilgilenen bir programcı bu editörleri öğrenmeli mi? Notepad++, Scribes vs.?

43
user22662

Vim, onu tanıdıktan sonra gerçekten iyi bir araçtır.

Kullandığım herhangi bir IDE veya metin düzenleyicisinden daha hızlı başlar ve sözdizimi vurgulama özelliğine sahiptir ve çoğu durumda kodu doğru girintili hale getirir.

Ayrıca kodlama sürecinin kendisine odaklanmanıza yardımcı olur, bununla başa çıkmak için fareyi hiç kullanmayacaksınız, bu sadece kod yazarken size çok zaman kazandıracaktır.

Yaptığınız her şey için de zengin bir eklenti var.

Dürüst olmak gerekirse emacs kullanmadım, ama eminim burada hoşlanan insanlar var, kişisel olarak Ctrl veya Alt tuşuna her zaman basmaktan hoşlanmıyorum.

Düzenle

Vim'in kullanışlılığı da ne yazdığınıza bağlıdır.

Bir API geliştiricisiyseniz (Java, C # ... vb.) Büyük olasılıkla bir IDE ile daha rahat edersiniz.

Ancak komut dosyaları (Bash, Perl ... vb.) Yazarsanız, hızlı bir şey yazmanız gerektiğinden Vim hızlıdır ve ihtiyacınız olan her şeyi yapar.

30
Mahmoud Hossam

Bir programcı mutlaka çok fazla araç öğrenmemeli, birkaçını öğrenmeli ve iyi öğrenmelidir.

Emacs ve vim'in her birinin kendine özgü güçlü yönleri var, ancak düzenli olarak çok fazla kullanmazsanız, onlardan yeterince faydalanamayacağınızı düşünüyorum. Özellikle bir öğrenme programcısıysanız değil.

Siz iyi bir IDE'den faydalanacaksınız , ancak sade, basit bir editör verildiğinde gerçek işler de yapabilmelisiniz.

47
user1249

vi 'ın önemi, onu her zaman UNIX'in herhangi bir lezzetinde (hem SysV hem de BSD lezzetlerinde standart) veya UNIX- sistem gibi. Ancak bunun orijinal olabileceğini unutmayın vi , değil vim . Başka bir düzenleyicinin yüklü olduğu garanti edilmez. Ayrıca Linux'ta /bin, bu nedenle /usr yüklenemedi.

16
vartec

Hızlı dokunuşlu bir daktilo musun? Sık sık düzenleme yapmak için daha fazla klavye kısayolu ister misiniz? Düzenleme için harcadığınız zaman, düşünce treninizi kesintiye uğratıyor mu? Editörünüzde, istediğiniz şekilde çalışmasını istediğiniz gibi özelleştirebileceğiniz küçük şeyler buluyor musunuz? Uzun vadede size daha fazla zaman ve çaba kazandıracağı anlamına gelirse, potansiyel olarak çok fazla çaba harcamayı umursamaz mısınız? Anakronist olduğunuzu düşünen insanlar sizi rahatsız ediyor mu? Eğer öyleyse, vim sizin için uygun olabilir.

Daha az özellik anlamına gelse bile kılavuzu okumadan editörünüzü bulmayı tercih ediyor musunuz? Ofisteki herkesin kullandığı kullanım konusunda daha rahat mısınız? Her şey için fareyi kullanıyor musunuz? Eğer öyleyse, vim sizin için uygun olmayabilir.

15
Karl Bielefeldt

Emacs (ve muhtemelen Vim de) öğrenmenin çok yararlı olduğunu düşünüyorum. Neden? Basit: Yaptığım her şey için az çok aynı editörleri kullanabilirim.

Bu harika çünkü ben bir öğrenciyim, sürekli parlak yeni şeylerin nasıl kullanılacağını öğreniyorum. Bu yıl Haskell'le oynadım, bir ton JavaScript yaptım, Scheme kullandım, Java yazdım, Perl ile uğraştım, bir web sitesinde çalıştım ... Emacs tüm bunlar için harikaydı.

Geçmişte farklı dillerle ilgili bazı problemlerim vardı: Perl veya Python'u alırdım, ancak ikisi için de iyi bir editör bulamadım. Artık her zaman Emacs kullanabileceğimi biliyorum. Tabii ki, bazen Emacs istediğim tüm özelliklere sahip değildir, ancak her zaman hızlı projeler için kullanmak için yarasadan yeterli özelliklere sahiptir. Daha uzun projeler için biraz özelleştirme gerekebilir, ancak bunun için harcanan zaman muhtemelen yeni bir IDE elde etmeye ve öğrenmeye eşittir.

Kısacası: Emacs harika çünkü birçok farklı dili destekliyor ve hayatı daha iyi hale getirmek için belirli bir dili desteklemeden bile yeterince güçlü.

6
Tikhon Jelvis

Hayır

Bunları nasıl kullanacağınızı öğrenmek istiyorsanız, bunu bir üretim ortamında yapmayın. Onları kod yazmaya alışmak için özel olarak bir kenara bırakılan kesinti sürenizde veya zamanınızda yapın. Daha fazla deneyim kazandığınızda, bunu ortamınıza tanıtın, ancak alıştığınız programı yakınlarda tutun. Saf bir metin düzenleyicisine aktarmaya karar verdiğimde, artık ihtiyaç duymadığımdan emin olana kadar ön sayfayı yakın tuttum.

5
Mallow

Yeni basmış bir programcının neden emacs ve öğrenmek için biraz zaman harcamasının en az üç nedeni vardır . VI:

  • gelenek: Musa'nın taş tabletler üzerindeki üretimini almasından bu yana hem vi hem de emacs var. Aslında, Tanrı'nın kendisi vi ya da emacs'ı ve şeytanı diğerini icat etmiş olabilir, ancak kimin istediğine bağlı olarak kimin icat ettiğine dair farklı cevaplar alırsınız. (Bunun bir religious argüman olduğunu duydunuz, değil mi?) Her iki durumda da, bu iki editör biraz tarih ve hikayeler ve şakalar onları bolca içerir. Her ikisini de bilmeden köklerinizi anlayamayabilirsiniz. Örneğin:

    Bir ampulü değiştirmek için kaç vi kullanıcısı gerekir?

    ne, önce "ekleme" moduna girmeyi unutmadığı sürece. *

  • atalet: Orada bir Defender makinesinde yüksek puan gibi nöronlarına emac ve/veya vi tuş vuruşları yanan birçok insan var. Kimsenin her iki editörü de modern kullanıcı arayüzü tasarımının parlayan bir örneği olarak tutacağını sanmıyorum, ancak birçok kişi zaten komutları bildiğinden, yeni editörler genellikle vi ve/veya emacs komutlarını destekliyor. MacOS X belki de bunun en iyi örneğidir: herhangi bir Kakao tabanlı uygulamada şaşırtıcı sayıda ortak emacs komutu kullanın ( bu kişiler ve vi tabanlı bir giriş yöneticisi kurun ). Tüm büyük platformlardaki birçok IDE ve metin editörleri, vi ve/veya emac'lar için önemli bağlantılar sunar ve muhtemelen uzun süre devam edecektir. Yani, tıpkı bir QWERTY klavyede yazmayı öğrendiğiniz gibi, muhtemelen bilmeseniz de bilmeseniz de eski bir metin düzenleyicisinden türetilen bazı komutları alırsınız.

  • güç: vi hakkında o kadar emin değilim, ama mevcut güç ve esnekliğe yaklaşan çok az sayıda editör olduğunu söylemek güvenlidir emacs. Bir şeyin çalışma şeklini sevmiyor musunuz? Değiştirebilirsin. Komut satırını kullanmak için düzenleyicinizden ayrılmak istemiyor musunuz? Sorun değil - ihtiyacınız olan her şeyi doğrudan emacs içinde yapabilirsiniz. Tüm bu güce ulaşmayı öğrenmek için Dagobah bataklıklarında çalışmak için çok zaman harcamanız gerekecek, ancak bazı insanlar bunu belki de kendi iyiliği için bile değerli bulabilir. vi, kemerinize asılan bir Leatherman aletine benzer: çok yönlü, her zaman hazır ve her türlü şey için kullanılabilir.

Şimdi, vi ve/veya emacs öğrenmek important mı? Ben her ikisi hakkında bir şey bilmek yararlı olduğunu söyleyebilirim, özellikle en azından biraz bunları kullanmak için kendinizi ihtiyacınız varsa bulursanız (olabilir). Ama onları bilmemek sizi geri çekmeyecektir. Günlük kullandığınız araçları mümkün olduğunca etkili bir şekilde nasıl kullanacağınızı bilmek daha önemli .

* Bu bir yazım hatası değil - vi ile ilk saatinizi geçirdikten sonra anlayacaksınız.

5
Caleb

Programlama için bir editör öğrenmeniz gerekiyorsa, emacs yapın. Neden?

Bir rpm yapmak gerekiyorsa ve emacs açın ve .spec WHAM uzantısı ile biten bir dosya bulmak için söyleyin! Metin renk kodlu metinlerle doldurulmuş tüm etiketlerin ve makroların bulunduğu bir iskelet dosyası görünür.

En sevdiğim sürüm denetimime göndermek istersem, esc-x load-library Mercurial (veya git veya svn), emac'leri sürüm kontrol menüsünden doğru komutları bırakmak veya ctrl-x gibi komutları tanımak için ruh halini koyar vv kodunu bir depodan teslim etmek veya teslim etmek ve bir havuzla yapabileceği her şeyi yapmak.

Optik yorgunluk, biri aynı renklere çok uzun süre baktığında ortaya çıkar. Terminal pencereleri için konsole kullanıyorum ve renkleri sık sık değiştiriyorum. Terminal penceresinde olmayan emac'larla, bazıları Alice Blue gibi rahatça düşük kontrastlı ve uyanık kalmam gerektiğinde öfori gibi bazı göz bıçaklayan 50'den fazla renk teması var.

Bir sürü python kodluyorum. Sözdizimi için bazı kodlamaları test etmem gerektiğinde, emacs bırakmıyorum. Python yorumlayıcıyı başlatıyorum ve ekran ayrılıyor, sonra python dosyamı kaydedip sözdizimini kontrol etmek için yorumlayıcıya aktarıyorum - bir hata olacak kolayca görünür ve hemen düzeltebilirim.İşim bittiğinde, bölünmemiş bir pencereye geçebilir ve çalışmaya devam edebilirim.

Bazı halk vi kullanmak diyor ve bazı eski Sun sistemlerinde kullanıyorum ... Düzenli bir ritim var - i vurmak ve bir char eklemek sonra kaçış vurmak ve tekrar i vurmak ve bir sonraki karakter yazmak ... (ancak daha iyi ed, ama mevcut olan budur).

Genellikle herhangi bir yeni sistemdeki ilk kurulumum zile. GNU zile, tarama ve e-posta ve irc ve renkler gibi tüm pencere giyinme olmadan emacs, sadece yaklaşık 100k içinde çalışan ve emacs anahtar kodlarını kullanan bir C kodlu ikili.

Emacs en çok ses çıkarmaya çalıştığı kadar zahmetliyse, pek çok halkın emacs benzeri editörler yaparak kendi kendini kırbaçlama için glutton olması şaşırtıcı olmalıdır. MINCE Tam Değil Emacs, 31 mikro-emac lezzeti, Jed, Zile, Joe ve bir tuhaf python kodlama veya iki artı web tabanlı YMac, hepsi emacsen. Peppy http://peppy.flipturn.org/ emacs anahtar kodlarını kullanan ve Python) kodlu farklı bir işlemdir ve ikili veri parçaları dahil her şeyi düzenler ve programlama dilleri için onlarca mod vardır, ancak anahtar kodlama paradigması emacsen'dir.

Evet, emacs öğrenmeye değer ve vi de öyle. Gerisi, birçok ekinin hoggishnessine dayanabiliyorsanız, Eclipse de yararlıdır. GERÇEKTEN küçük, hafif ve hızlı bir şeye ihtiyacınız varsa, e3'e bakın. X86 sürümü montajcıda yazılmıştır ve Emacs ve Vi dahil birçok anahtar kod kümesine hizmet eder. https://sites.google.com/site/e3editor/

Ve evet, emacs açıyorum, 17 sayfa yazıyorum ve BLAP! Şimşek çakıyor ve gücüm sönüyor. Güç geri yüklendiğinde, işe bakıyorum ve yazdığım son 7 karakteri kaybettim keşfettim .... Ve "çöktü oturumu kurtarmak" prosedürü izlemeye karar verirseniz, 2 kayıp için azaltabilir.

Python kodu girintiye inanmaz, üzerlerine DEPENDS. Emacs bunun farkındadır ve girintinizin doğru olduğundan emin olur. Ancak bir "if" karakterini kaldırmaya karar verirseniz, tüm bölge yanlış girinti durumunda olacaktır. Emacs ile bunu şu şekilde düzeltirsiniz:

bölgeyi vurgulamak için ctrl-space ve ok tuşları

vurgulanan tüm kodu eski haline getirmek için ctrl-c <. (ctrl-c> tekrar doğru girintili yapar).

60'tan fazla editör kullandığımı düşünüyorum ve yine de geri döndüğüm şey emacs, C'de fonksiyon kodu saplamaları veya uygun girinti veya renk kodlaması alabildiğim için değil, zaten harika yeteneklerinin ötesinde özelleştirebildiğim için değil . Richard Stallman'ın beyni çok sayıda kişi tarafından uyarlandı ...

3
Michael Moore

Günümüzde çeşitli editör ibadet popülaritesi büyük olasılıkla Pragmatik Programcı kitap,

ya da kesin olarak, akılsızca tıka basa okuyuculardan Bölüm 3 Temel Araçlar -> Güç Düzenleme -> Bir Editör ama Önsöz bölümünde ortaya konan anahtar (pragmatik!) paketini tamamen kaçırdınız:

Kolay cevap yok. Bir araç, dil veya işletim sistemi gibi en iyi çözümü diye bir şey yoktur. Sadece belirli koşullar altında daha uygun sistemler olabilir.

Burada pragmatizm devreye giriyor. Belirli bir teknolojiye bağlanmamalısınız, ancak belirli durumlarda iyi çözümler seçebilmeniz için yeterince geniş bir altyapıya ve deneyim tabanına sahip olmalısınız ...

Yaklaşımınızı mevcut koşullara ve çevreye göre ayarlarsınız. Bir projeyi etkileyen tüm faktörlerin göreceli önemini değerlendirir ve deneyiminizi uygun çözümler üretmek için kullanırsınız. Ve bunu iş ilerledikçe sürekli yaparsınız.

Eğer yukarıdaki gibi genel bir anlayış elde edilirse, bu tek başına kitabı okumaya değer kılar. Akılda tutulması gereken ana fikir, yazarların açıkça ve açık bir şekilde ifade ettiği fikirdir, "En iyi çözüm diye bir şey yoktur" .

3
gnat

Ne emacs ne de vi yalnızca kodlama amaçlı değildir; sadece kod yazmayı biraz daha kolaylaştıran özellikleri destekliyorlar.

vi'nin tek erdemi her yerde bulunur; herhangi bir Unix veya Linux tabanlı sistemin vi. TECO 'dan daha hafif yıllar dost, ama bir Etch-a-Sketch kullanıyor. Bununla birlikte, vi, bir terminal oturumundaki birincil düzenleme aracımdır, çünkü aynı zamanda ve emacs'ı aynı anda öğrenmek için bant genişliğine sahip olmadım (ve emacs birçok anahtar kod kombinasyonuna çok zarar verdi).

Her iki aracı da öğrenmek için gerekmez; aynı özelliklerin çoğunu daha dostça bir formatta destekleyen başka kaliteli metin editörleri de var.

2
John Bode

Vi veya Emacs öğrenmeniz gerekmez, araçlarınızı öğrenmeniz gerekir. Tüfeğinin dezavantajlarını ve yeteneklerini iyi bilmeyen bir keskin nişancı hayal edin, iyi bir keskin nişancı olmaz mıydı? Yapar mıydı?

Öyleyse devam edin ve beğendiğiniz bir editör bulun, Emacs, Vim, Textmate, Sublime Text ... heck, belki onlardan hoşlanmıyorsunuz ve Nano ile sorun değil, ama önemli olan rahat olmanız araçlarınızla.

1
dysoco