2 puan yazan GN⁺ 2023-08-19 | 1 yorum | WhatsApp'ta paylaş
  • micro, terminalde kullanılan bir metin düzenleyicisidir; nano gibi basit başlamayı hedeflerken daha modern ve sezgisel bir kullanım sunmayı amaçlar
  • Bağımlılık gerektirmeyen statik ikili dosya olarak dağıtılır; bu da kurulum yükünü azaltır ve resmi sürüm indirmesiyle birlikte ayrıntılı kurulum yönergeleri sunulur
  • Seçenekler ve tuş atamaları JSON biçimi ile değiştirilebilir; daha ileri düzey genişletmeler ise Lua yapılandırması ve eklentilerle yapılabilir
  • 75'ten fazla dil için sözdizimi vurgulama, 7 varsayılan renk teması, 16/256/truecolor tema, Sublime tarzı çoklu imleç ve fare kullanımını destekler
  • Yerleşik terminal emülatörü sayesinde düzenleyici içinde etkileşimli kabuk çalıştırılabilir ve bölünmüş ekranda kod ile bash birlikte görülebilir

Terminal düzenleyicisi olarak micro

  • micro, terminal tabanlı bir metin düzenleyicidir ve modern, sezgisel kullanılabilirliği öne çıkarır
  • En son sürüm Download sayfasından indirilebilir; ayrıntılı kurulum yönergeleri de incelenebilir
  • curl https://getmic.ro | bash biçiminde üçüncü taraf bir pipe to shell betiği vardır, ancak bu micro'nun kontrolü altında değildir
  • Kurulumu kolaylaştırmak için bağımlılık gerektirmeyen statik ikili dosya olarak dağıtılır
  • Yapılandırma ve genişletme

    • Seçenek ayarları ve tuş yeniden atamaları basit JSON biçimi kullanır
    • Daha güçlü yapılandırma gerektiğinde Lua kullanılabilir
    • Eklentiler Lua ile yazılır ve eklenti yöneticisi indirme ile kurulumu otomatik olarak gerçekleştirir
  • Düzenleme özellikleri

    • 75'ten fazla dil için sözdizimi vurgulama desteği sunar
    • 7 varsayılan renk teması sağlar
    • 16 renkli, 256 renkli ve truecolor temalar kullanılabilir
    • Sublime tarzı çoklu imleç desteği vardır
    • Tuş atamaları bindings.json içinde değiştirilebilir
  • Fare ve yerleşik terminal

    • Tıklama ve sürükleme ile metin seçilebilir
    • Çift tıklama kelime bazlı, üçlü tıklama satır bazlı seçim için kullanılır
    • micro içinde gerçek bir etkileşimli kabuk çalıştırılabilir
    • Bölünmüş ekranda bir tarafta kod, diğer tarafta bash gösterilebilir
    • Tüm özellik listesi GitHub özellikler listesi ve çevrimiçi yardım içinde görülebilir

Proje ve topluluk

  • Hatalar GitHub issue tracker üzerinden bildirilebilir; soru sormak veya yeni özellik önermek de mümkündür
  • Pull request kabul edilir
  • Düzenleyiciyle ilgili gayriresmî tartışmalar Gitter sohbetinde yapılabilir
  • İlgili bağlantılar:
  • Kullanıcı tepkileri arasında, basitçe çalışan bir düzenleyici olması, fare desteği sunması ve nano ya da Vim yerine kullanılabilmesi yer alır

1 yorum

 
GN⁺ 2023-08-19
Hacker News yorumları
  • Herkesin yeni başladığı bir derste komut satırı programlaması öğretirken öğrencilere nano’yu öneriyorum.
    Bu kullanıcılar için nano’nun en büyük avantajı, tüm komutların ekranın alt kısmında gösterilmesi; micro’da bunun olmamasına şaşırdım.

    • micro ile nano arasındaki fark şu: nano’nun klavye kısayolları epey kendine özgüyken, micro günümüzde çoğu grafik uygulamada kullanılan Ctrl+S ile kaydetme, Ctrl+F ile arama, Ctrl+Z ile geri alma, Ctrl+Q ile çıkma gibi yaklaşımları izliyor.
      Ekranın alt kısmında Alt+G’ye basınca kısayolları görebileceğinize, Ctrl+G ile de yardımı açabileceğinize dair bir ipucu da var.
    • micro’nun amacı, yeni başlayanlara uygun ya da her yerde bulunan bir düzenleyici olmaktan ziyade modern ve genişletilebilir bir düzenleyici olmaya daha yakın görünüyor.
      Bu açıdan öğrencilere hâlâ nano önermek doğru; micro ise nano’yla öğrendikten sonra daha fazla özellik veya daha iyi bir UI isteyenlere uygun gibi.
    • Alt+G’ye basınca kısayol ekranı çıkıyor gibi, Ctrl+G de yardımı açıyor.
      Bir tür yorum modu da var gibi görünüyor.
  • Emacs’i 10 yıldan uzun süre kullandıktan sonra şu anda ana kod düzenleyicim olarak micro kullanıyorum. Coq yazarken yalnızca vscode’u istisna olarak kullanıyorum.
    micro’yu modern bir uzlaşmayla yapılmış acme olarak görüyorum; acme’nin temel fikirlerini destekleyen neredeyse tüm özelliklere sahip. Bu yönden yararlanmak için bir eklenti de yazdım: https://github.com/xxuejie/micro-acme
    Şimdiye kadar bana kusursuz uydu.

    • Son zamanlarda Emacs özelliklerinin ancak %1’i kadarını kullandığım için Emacs’e alternatif olarak hafif terminal düzenleyicileri denemeyi sürdürüyorum, ama C/C++ gibi yaygın Emacs major mode’larını ve özellikle girintileme biçimini çok özlüyorum.
      Sekme tuşuyla doğru girintilemeyi zorunlu kılan geleneği diğer düzenleyicilerin de izlemesini isterdim.
    • micro’yu pek bilmediğim için soruyorum: Son 1-2 yılda geliştirme hızının yavaşlamasının bir nedeni var mı, merak ediyorum.
      https://github.com/zyedidia/micro/tags
    • Benzer şekilde Emacs’ten Acme’ye geçtim ve terminalde mg kullanıyorum.
      Artık Micro’yu Acme hissi verecek şekilde özelleştirmiş durumdayım.
  • nano’yu ana kod düzenleyicisi olarak kullanan insanlar olduğunu bilmiyordum. Üzerinde çalıştığım *nix sunucularda hep kullanırım; muhtemelen on binlerce kez kullanmışımdır.
    Uzun süre Linux/BSD mühendisi olarak çalıştım; bazı yerler sunuculara nano kurulmasını reddediyordu. vi dışında hiçbir şey kullandırmayan kıdemli Linux yöneticileri var; bunu anlamıyorum. 20 MB’lık bir paket ve saldırı yüzeyi de o kadar büyük değil.

    • Kıdemli dediğin sonunda kıdemli gibi davranıyor.
      Eski kuşaktan birine hangi sistemleri yönettiğini sorduğunuzda, kendi yerel yönetiminin tüm BT departmanından sorumlu olduğunu ve oldukça büyük bir yer olduğu için en az 500 kadar kullanıcısı bulunduğunu övünür gibi anlatması beni hep güldürür.
      O sistemin tüm ilçedeki en güvenli sistem olduğuna %105 eminim, ama aynı zamanda kullanılamaz bir sistem olmuş olmalı. O kişi emekli olduğunda ya da ofisten biri çaresizlik içinde onu ortadan kaldırdığında, yerine vi bilmeyebilir ama kullanıcıları biraz olsun önemseyen yeni nesil bir mühendisin geçmesini umarım. Tabii biz de mühendisiz, o yüzden çok da önemseyecek değiliz.
    • Bir Unix yöneticisinin vi’ı en ince ayrıntısına kadar bilmesi gerekmesinin başlıca nedeni, Unix ve Linux sistemlerinde en küçük ortak payda olmasıdır.
      *nix teknisyeni olarak çalışırsanız QNX, HP-UX, SGI Altix süper bilgisayarları, Sun Ultra 2 gibi sistemlerle uğraşmanız gerekebilir. Linux, özgür/açık kaynak yazılım paket yönetimi olduğu için kolaydı; nano yaygınlaşmadan önce varsayılan kurulumda Emacs’in yer alması da yaygındı.
      Bazen terminal sorunları yaşanır ve yalnızca tek satır görebildiğiniz bir durumda çalışmanız gerekirdi; o zaman vi’ı görünmeyen şekilde kullanmanız ya da sed/awk kullanmanız gerekirdi. Bu yüzden herkese vi öğretmeye yönelik KISS içgüdüsü hâlâ kalmış olabilir. Ben de öyle öğrendim.
      Tek bir düzenleyici büyük bir saldırı yüzeyi yaratmaz, ama bir saldırganın eklenti işlevini kalıcılık sağlama aracı olarak kötüye kullanma ihtimalini de dışlamam. root olarak çalıştırıldığında farklı davranır, ama servis hesaplarında öyle olmayabilir.
    • 20 MB denmiş ama nano yürütülebilir dosyası 277 KB, tüm .deb paketi de 860 KB.
      https://packages.ubuntu.com/jammy/nano
    • Aslında nano kullanıcısıydım; kıdemlilerin baskısıyla vim kullanmaya başladım ve artık nano’ya yalnızca vimrc dosyamı düzenlemem gerektiğinde dokunuyorum.
      O zamanlar sinirlenmiştim, ama şimdi geçiş yaptığıma memnunum. Vim veya vi, üzerinde çalıştığım switch ve router’lar dâhil her yerde var. nano her yerde yok ve her yere kolayca eklenemiyor.
      Eski ya da kaynakları kısıtlı donanımlara düzenli olarak SSH ile bağlanmasaydım bunun avantajını daha az hissederdim.
    • Kişisel olarak nano’dan hiç hoşlanmıyorum, her zaman vi’ı seçerim.
      Ancak metin düzenleyici seçimi son derece kişisel bir konu. Birinin başka birine belirli bir düzenleyiciyi kullanmasını ya da kullanmamasını dayatması hiç mantıklı değil. Bırakın herkes sevdiğini kullansın.
  • JOE oldukça iyi: https://joe-editor.sourceforge.io/
    WordStar ile Emacs’in bir karışımı; jstar olarak çalıştırınca oldukça gerçekçi bir WordStar deneyimi sunarken ilk dönem Borland Turbo IDE hissini de taşıyor

    • JOE’yu gerçekten çok severdim. Muhtemelen WordStar’dan izler taşıdığı için
      Hâlâ Linux’ta WordStar Diamond tuşlarını kullanma yöntemi üzerine bir yazı yazdım: https://benhoyt.com/writings/wordstar-diamond/
    • İlk kullandığım kelime işlemci CP/M’de WordStar’dı, ilk programlama ortamım da Borland Turbo Pascal’dı
      Daha sonra WordStar tuşlarını kullanacak şekilde yapılandırılabilen QEdit’i de kullandım
      90’ların başında DOS’tan Unix’e geçtiğimde JOE’yu keşfedince sevinmiştim. Yeni bir Linux ya da *BSD makineye, VM’e ilk kurduğum programdır
      Bugünlerde JOE’da sözdizimi vurgulama ve birçok güzel özellik var; bu yüzden vi ya da emacs’te ustalaşmam gerektiğini hiç hissetmedim
    • 90’larda kod düzenleme dışında neredeyse her şey için joe kullandığıma dair güzel anılarım var
      Kod düzenleme için pek iyi değildi; otomatik satır kaydırma ve sözdizimi vurgulama eksikliği gibi nedenlerle daha çok kelime işlemci modeline yakındı
      Ama metin belgeleri yazmak için sevimli, küçük bir editördü
    • Modlar arasındaki farklar ve tuş bağlamaları kılavuzda belgelenmemiş mi?
      Belki ben bulamamışımdır ama gerçekten görünmüyor
    • Sık sık jmacs olarak çalıştırıp Emacs klavye kısayolları setini kullanıyorum
  • micro’yu seviyorum ve her gün kullanıyorum
    Ancak Helix’i deneyince micro’nun treesitter, LSP ve bağlamsal yardım yerleşik gelen bir hâlini istemeye başladım. Helix bu özellik paketini gerçekten çok iyi başarmış, ama “tek mod + komutlar” ile Ctrl-C/Ctrl-V kas hafızası o kadar rahat ki geçmek zor

    • Helix’i yaklaşık 6 aydır her gün kullanıyorum ve temel özellikleri tam olan bir editör olmasını gerçekten seviyorum. Harika bir editör
  • Neden hâlâ internette indirilen bir şey için sudo çalıştırmayı söyleyen yazılımlar var anlamıyorum
    Daha kolay, daha güvenli, kurulum boyutu daha küçük ve tüm dağıtımlarda yerleşik seçenek varken neden böyle betikler kullandırılıyor, merak ediyorum
    Karşılaştırma yapmak gerekirse Alpine’ın micro paketi kurulumdan sonra 4 MB; GitHub’dan indirilen statik derlenmiş ikili ise 11 MB. Depo paketini kullanmak bence daha micro’ya yakışır

    • Gerçekten sudo çalıştırmanızı mı istiyor?
      https://github.com/zyedidia/micro#quick-install-script adresine bakınca hızlı kurulum betiği curl https://getmic.ro | bash ve betik micro ikilisini geçerli dizine koyuyor
      Sonra isterseniz PATH içindeki bir dizine taşıyabilirsiniz; örnek olarak da sudo mv micro /usr/bin veriyor. /usr/bin içine taşımak için sudo gerektiğini söylemekten ibaret; bunun sorun olup olmadığını merak ediyorum
    • İnternetteki rastgele bir kaynağı sudo’ya ya da (ba)sh’e pipe etmeyi önermek tamamen sorumsuzca
      “Herkes böyle yapıyor” şeklindeki gülünç gerekçeden de bıktım
    • Şahsen uygulama geliştiricisiyle benim arama aracı girmesini istemem
      Uygulamayı doğrudan geliştiricisinden almak isterim. Böylece resmi desteklenen sürümü kullandığımdan ve koda kimsenin dokunmadığından emin olabilirim
      Uygulama geliştiricisine güvenmiyorsam zaten kurmam
  • Nano’nun Pico’nun modern alternatifi olduğunu sanıyordum

  • İnsanların neden böyle küçük editörlere ilgi duyduğunu merak ediyorum
    vi/vim kullanmanın tek nedeni her yerde bulunması. Bir editör kuracaksam Emacs kurarım
    Uzak bir sistemse, tramp ile SSH üzerinden dosyaları açıp yerel Emacs’ın tüm gücünü ve hızını aynen korurum. sudoedit, git commit, C-x C-e gibi terminal arayüzü düzenlemeleri için Emacs’ı daemon olarak çalıştırdığım için yeni frame’ler ve terminal frame’leri anında açılıyor; nerd font ve renkler dahil Emacs GUI’siyle neredeyse aynı ve kelimenin tam anlamıyla Emacs
    Kullanım amacına göre birden fazla editöre sahip olmaya gerek yok

    • Linux’u 20 yıldan uzun süredir kullanan biriyim ama vi’yi bir türlü gerçekten anlayamadım ve sezgisel gelmedi
      Emacs bana daha çekici geliyordu; OpenWRT çalışan bir router gibi düşük güçlü cihazlara ssh ile bağlandığımda Emacs olmadığı için, kullanılabilir editörler arasında sezgisel görünen Nano’yu kullanıyorum
      Emacs ve TRAMP kullanabileceğimi biliyorum ama herkesin kendi iş akışı oluşuyor. vi’yi kötülemek istemiyorum; bazı hacker’ların vi’ye bir türlü alışamaması bilinen bir olgu
    • Herkes devasa bir editöre ve dik bir öğrenme eğrisine ilgi duymuyor
      Bazı insanlar sadece bir dosyayı hızlıca düzenlemek istiyor
      Windows Notepad veya Mac SimpleText’ten zaten bildikleriyle kullanabiliyorlar; bozuk bir makinede ya da yalnızca Unix konsolu olan bir sunucu makinesinde de çalışıyor
    • Bu tür küçük editörlerin kendisine ilgi duyduğum yok
      Ancak nano gibi küçük editörlere ciddi ilgim var. Nedeni bu kök yorumda: https://news.ycombinator.com/item?id=37173126
      Buradaki ilk paragraf da bakmaya değer: https://linuxize.com/post/how-to-use-nano-text-editor/
      vi veya vim ile büyümemiş ve emacs tarafını da seçmemiş günümüz sistem yöneticileri için, kitlesel dağıtım imajlarına nano koymak nazik bir tercih
    • Karşılaştığım tüm işletim sistemlerinde Nano var
      Uzakta bir şeyleri sık sık düzenlemiyorum; genelde yalnızca basit yapılandırma dosyaları oluyor
      micro’yu da denedim ve sevdim ama Pi’de anında açılmadı; komut satırı editöründe özelliklere gerçekten ihtiyaç duyacak kadar büyük işler yapmıyorum
    • micro kullanmamın nedeni, fazla çaba harcamadan özel eklenti geliştirebilmem ve düzgün bir terminal editörü olmayan sistemlere yalnızca kopyalayarak kolayca dağıtabilmemdi
      Normalde vim’i tercih ederim ama hedef sisteme düzgün bir yapılandırma dağıtmak için gereken çaba çok fazla
  • micro’da yaşadığım sorun biçimli yapıştırma idi
    Bir kod parçası yapıştırdığımda micro her satırda girinti vermeye çalışıyordu; tüm bağlamı bilmediği için yapıştırılan metnin girintisi giderek sonsuza kadar derinleşiyordu
    Her satırda biçimi çıkarmaya çalıştığından süreç de neredeyse duracak kadar yavaşlıyordu. Yapıştırıp Matrix benzeri bir sahneyi izlemek yerine kahve almaya gidiyordum
    Umarım çözülmüştür ama o noktada bıraktım. Çözüldüyse tekrar deneyebilirim

    • Devre dışı bırakılabilir: Ctrl+E, ardından set autoindent off
      https://github.com/zyedidia/micro/blob/master/runtime/help/o...
      Yine de etkin haldeyken bile tüm bir blok yapıştırıldığında doğru girintilenmesi gerekir
      Ayarları, ortamı ve yapılandırmayı paylaşırsanız bir yama hazırlamayı deneyebilirim
    • Windows’ta Wezterm ile kullanırken bir kez başıma gelmişti
      Yapıştırma yöntemine bağlı. Tam olarak nasıl çalıştığından %100 emin değilim ama micro, xclip ile doğrudan yapıştırmayı yeniden uyguluyor gibi görünüyor; Windows’ta ne yaptığını bilmiyorum
      Ctrl+V ile yapıştırınca pano içeriğini blok olarak anında ekliyor ve özgün girintiyi kopyalıyor. Ctrl+Shift+V kullanınca terminalin panoyu karakter karakter akıtıyormuş gibi ele aldığı durumlar oluyor; sonraki karakteri bilmeden dönüş karakterini görünce ek girinti veriyor, sonra da safça birkaç sekme daha ekliyor
  • Diğer 14 gönderi arasında 2020’deki yazıda 103 yorum, 2021’deki yazıda 162 yorum vardı
    [0]: https://news.ycombinator.com/item?id=23334190
    [1]: https://news.ycombinator.com/item?id=29128702