micro - nano için modern bir alternatif
(micro-editor.github.io)- 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 | bashbiç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.jsoniç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
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.
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.
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.
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.
Sekme tuşuyla doğru girintilemeyi zorunlu kılan geleneği diğer düzenleyicilerin de izlemesini isterdim.
https://github.com/zyedidia/micro/tags
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.
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.
*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.
https://packages.ubuntu.com/jammy/nano
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.
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ı;
jstarolarak çalıştırınca oldukça gerçekçi bir WordStar deneyimi sunarken ilk dönem Borland Turbo IDE hissini de taşıyorHâlâ Linux’ta WordStar Diamond tuşlarını kullanma yöntemi üzerine bir yazı yazdım: https://benhoyt.com/writings/wordstar-diamond/
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
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ü
Belki ben bulamamışımdır ama gerçekten görünmüyor
jmacsolarak çalıştırıp Emacs klavye kısayolları setini kullanıyorummicro’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
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
https://github.com/zyedidia/micro#quick-install-script adresine bakınca hızlı kurulum betiği
curl https://getmic.ro | bashve betik micro ikilisini geçerli dizine koyuyorSonra isterseniz PATH içindeki bir dizine taşıyabilirsiniz; örnek olarak da
sudo mv micro /usr/binveriyor./usr/biniçine taşımak için sudo gerektiğini söylemekten ibaret; bunun sorun olup olmadığını merak ediyorum(ba)sh’e pipe etmeyi önermek tamamen sorumsuzca“Herkes böyle yapıyor” şeklindeki gülünç gerekçeden de bıktım
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
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
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
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
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
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
set autoindent offhttps://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
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