3 puan yazan GN⁺ 2025-06-26 | 1 yorum | WhatsApp'ta paylaş
  • Microsoft Edit, classic MS-DOS Editor'e saygı duruşunda bulunurken VS Code'a benzer modern bir arayüz ve giriş kontrolü sunan, basit düzenleme ihtiyaçları için bir editördür
  • Amaç, terminale alışık olmayan kullanıcıların da kolayca kullanabileceği erişilebilir bir editör sunmaktır
  • Windows'ta WinGet, macOS'ta Homebrew ile kurulabilir; Linux'ta ise dağıtımın ikili paketi yoksa veya doğrudan derlemek isteniyorsa kurulum betiği kullanılabilir
  • Rust ile geliştirilir; nightly Rust yapılandırması, ikili dosya boyutunu ciddi ölçüde azaltıp performansı bir miktar iyileştirdiği için önerilir
  • Paket yöneticilerine, çalıştırılabilir dosya adı çakışması ihtimali nedeniyle edit yerine msedit adını kullanmaları önerilir; ayrıca arama/değiştirme özelliği ICU kütüphanesi yapılandırmasından etkilenir

Microsoft Edit'in amacı ve karakteri

  • Edit, “simple editor for simple needs” hedefiyle geliştirilen basit bir editördür
  • Klasik MS-DOS Editor'e saygı duruşunda bulunurken, modern bir arayüz ve VS Code'a benzer giriş kontrolü sunar
  • Terminale alışık olmayan kullanıcıların da rahatça kullanabileceği erişilebilir bir editör olmayı amaçlar

Kurulum yöntemi

  • İkili dosyalar Releases page üzerinden indirilebilir
  • Windows

    • En güncel sürüm WinGet ile kurulabilir
    winget install Microsoft.Edit
    
  • Linux

    • Dağıtım ikili paket sunmuyorsa veya doğrudan derlemek isteniyorsa kurulum betiği kullanılabilir
    • Gereksinimler: Rust, C derleyicisi, ICU, curl veya wget ve tar
    • Varsayılan kurulum msedit dosyasını ~/.local/bin içine yükler
    curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/microsoft/edit/… | sh
    
    • Ek bayraklar olarak --dev, doğrudan main dalından derler; --system ise /usr/local/bin içine kurar
    curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/microsoft/edit/… | sh -s -- --dev --system
    
  • macOS

    • En güncel sürüm Homebrew ile kurulabilir
    brew install msedit
    

Derleme biçimi

  • Derleme için Rust kurulumu ve deponun klonlanması gerekir
  • Nightly Rust kullanılıyorsa release derlemesi aşağıdaki komutla yapılır
    cargo build --release --config .cargo/release.toml
    
  • Stable Rust kullanılıyorsa RUSTC_BOOTSTRAP=1 ortam değişkeninin ayarlanıp nightly derleme talimatlarının izlenmesi önerilir
    • Bu yöntem ikili dosya boyutunu ciddi ölçüde azaltır ve performansı bir miktar iyileştirir
  • Herhangi bir ek ayar olmadan stable Rust ile derlemek için şu komut kullanılır
    cargo build --release
    

Derleme yapılandırma seçenekleri

  • Derleme sırasında yapılandırma, ortam değişkenleriyle ayarlanabilir
  • EDIT_CFG_ICU*, ICU kütüphanesi adları yapılandırmasıyla ilgilidir ve Linux paket yöneticilerinin bu seçeneği incelemesi önerilir
  • EDIT_CFG_LANGUAGES, derlemeye dahil edilecek dillerin listesini virgülle belirtir

Paket yöneticileri için notlar

  • Standart çalıştırılabilir dosya adı edit, alternatif ad ise msedit'tir
  • Mevcut komutlarla edit adı çakışabileceği için paket ve çalıştırılabilir dosya adı olarak msedit önerilir
  • ms-edit gibi adlardan kaçınılmalıdır
  • Mümkünse edit takma adının atanması önerilir

ICU ile ilgili yapılandırma

  • Bu proje, arama ve değiştirme özelliği için ICU kütüphanesine isteğe bağlı olarak bağımlıdır
  • Varsayılan olarak platforma göre ICU kütüphane adları aranır
    • Windows: icuuc.dll, icuin.dll
    • macOS: libicucore.dylib
    • Linux ve diğerleri: libicuuc.so, libicui18n.so
  • Kurulum ortamındaki SONAME farklıysa derleme sırasında ortam değişkenleri ayarlanmalıdır
    • EDIT_CFG_ICUUC_SONAME: ör. libicuuc.so.76
    • EDIT_CFG_ICUI18N_SONAME: ör. libicui18n.so.76
  • ICU sembollerinin varsayılan olarak _ öneki ve sürüm son eki olmadan u_errorName gibi dışa aktarıldığı kabul edilir
  • Farklı sembol biçimleri kullanan ortamlarda ek ortam değişkenleri kullanılabilir
    • EDIT_CFG_ICU_CPP_EXPORTS=true: _u_errorName gibi C++ sembollerini arar; macOS'ta varsayılan olarak etkindir
    • EDIT_CFG_ICU_RENAMING_VERSION=76: u_errorName_76 gibi sembolleri arar
  • EDIT_CFG_ICU_RENAMING_AUTO_DETECT=true ayarlanırsa çalıştırılabilir dosya, çalışma anında renaming version değerini algılamaya çalışır
    • Bu yöntem ICU tarafından resmî olarak desteklenmediği için buna bağımlı kalınmaması önerilir
    • UNIX'te, macOS hariç, başka seçenek yoksa varsayılan olarak etkindir
  • Derleme yapılandırmasını test etmek için cargo test komutu --ignored bayrağıyla çalıştırılır
    cargo test -- --ignored
    

1 yorum

 
GN⁺ 2025-06-26
Hacker News görüşleri
  • Bu yazıya bir haftada üç kez çıkacak kadar büyük ilgi vardı

    1. Yazarın kendisi - https://news.ycombinator.com/item?id=44034961
    2. Ubuntu Publication - https://news.ycombinator.com/item?id=44306892
      Ve bu yazı
  • Bu editörün hedef kullanıcı kitlesine eskiden micro öneriyordum; şimdi değiştirsem mi merak ediyorum

    1: https://micro-editor.github.io/

    • Değiştirmeye gerek yok gibi görünüyor
      edit, en azından ilk denediğimde sözdizimi vurgulamayı bile varsayılan olarak desteklemiyordu
    • En son baktığımda micro, sırf ikili dosya boyutuna göre macro diye anılacak kadardı
    • dte de var. Tam aynı noktayı hedefleyen, Unicode desteği, CUA tuş bağlamaları gibi daha fazla özelliğe sahip çok hafif bir editör
      nano yerine terminal editörü olarak kullanıyorum
      [1]: https://craigbarnes.gitlab.io/dte/
    • Micro, nano gibi bir şeyin yerine geçmek için harika bir editör. Ama edit’in alternatifi olarak iyi olmayabilir; edit çok temelken micro Lua ile epey genişletilebilir
      Büyük dosyaları da oldukça iyi idare ediyor
    • Windows’ta da yalnızca "winget install zyedidia.micro" ile kurulabiliyor. Benzer dönemin 8 bit ve 16 bit editörlerini hatırlatıyor
  • Microsoft ölçeğinde bir organizasyonda böyle bir projenin nasıl onaylandığını gerçekten merak ediyorum. Birkaç geliştiricinin yan projesi mi, yoksa ürün yol haritasının bir parçası mı merak ediyorum
    Liderliği buna zaman ayırmaya nasıl ikna ettiler acaba?

    • Açıklamaya göre Windows Core sunucu kurulumunda çalışacak bir komut satırı metin editörüne ihtiyaç vardı
      Windows’a SSH Server ekleneli epey oldu; dolayısıyla yalnızca SSH ile tamamen yönetilebiliyor ve vi deneyimi olmayan Windows yöneticilerinin de kullanabileceği modsuz bir editöre ihtiyaç duyuluyordu
    • Metin editörleri Copilot entegrasyonu için fazlasıyla doğal bir hedef
    • Her grubun bir şeyler yapması gerekir ve fikir üretirler. Bazen “Copilot kullanın” gibi liderlik yönlendirmelerinden çıkar, bazen de hackerdayz gibi etkinlik fikirleri büyür
      Araştırma organizasyonlarında teknik personelin boşluk bulup başlattığı durumlar da olur; derin analiz ve birkaç yarıyılı aşan süreçlerden sonra fon alanlar da olur
      Buradaki katkı veren sayısına bakılırsa bu proje muhtemelen stratejik bir yatırımdı. Bir gecede ortaya çıkmış değil
  • DOS 6.22 ve sonrasında 7.0, yani Win95 civarındaki özgün edit.com benim ilk IDE’mdi. qbasic ile başladım; benzer ya da aynı arayüze alışmıştım ve djgpp ile C/C++ öğrenirken de edit.com kullanmaya devam ettim
    Benim “proje dosyam”, içinde edit file1.cpp file2.cpp file3.cpp olan e.bat idi; Alt-1,2,3 ile kolayca geçiş yapılabilen oldukça iyi bir çoklu dosya desteği olduğu için kullanıyordum. Bugün bile editör tuş bağlamalarını dosya geçişi için Alt/Cmd-1,2,3 olacak şekilde yeniden eşliyor ve “aktif set”i en baştaki birkaç dosyayla küçük tutmaya çalışıyorum
    Sözdizimi vurgulaması yoktu ve girinti davranışı da pek iyi değildi; bu yüzden harika bir kod editörü sayılmazdı. Bu nedenle kariyerimin başlarında elle yazması kolay, sekme gibi görünmeyen iki boşluklu girinti kullanıyordum. Yine de koda doğrudan temas ediyormuş hissi güçlüydü
    Başkalarının qedit gibi editörleri çok kullandığını biliyordum ama garip şekilde bana uymuyordu; Unix tarzı editörler de DOS’ta eğreti duruyordu
    Kısa süre denedim; birden fazla buffer destekliyor gibi görünse de aynı tuş bağlamalarıyla buffer değiştirme yok gibi

    • Böyle şeyleri issue olarak açmak iyi olur. Bu tür konular başta girerse dikkate alınma ihtimali var
      Ayrıca yalnızca benzer değil, kelimenin tam anlamıyla aynıydı. EDIT.COM yalnızca QBASIC’i özel bir flag ile çalıştırıyordu; QBASIC’i o flag ile doğrudan da çalıştırabiliyordunuz. https://news.ycombinator.com/item?id=44037509’da söylediğim gibi, eğlencesine gerçekten öyle yapmıştım
    • Sözdizimi vurgulaması yoktu ama daha iyi bir ifade bulamadığım için söyleyeyim: sözdizimi büyük harfe çevirme vardı
      Bir satırı tamamen küçük harfle yazıp Enter’a basınca ayrılmış sözcükleri otomatik olarak büyük harfe çeviriyordu. Müthiş değildi ama işe yarıyordu
    • copy con döneminden sonra gelen edit gerçekten kurtarıcıydı
  • Hoşuma giden çok şey var. Öncelikle bağımlılık listesinin boş olması bile beni ikna etmeye yetti
    Çok iyi çalışıyor. Dosya tarayıcısı ve iletişim kutularına kadar sahip bir TUI’yi bunun için baştan sona yapmış olmalarına inanamıyorum. Kendi projelerimde de kullanmak isterim; ne kadar kolay olur merak ediyorum. Projeyle ilgili biri buradaysa neden Ratatui kullanmadıklarını da merak ediyorum
    Kod kalitesi de en üst seviyede; söyleyebileceğim tek şey var: Bravo!

    • Testleri kolaylaştıran birkaç geliştirme bağımlılığı dışında kelimenin tam anlamıyla bağımlılığı yok
      Windows gibi işletim sistemlerinde yöneticilerin kullandığı varsayılan araç olarak dağıtılacak bir şey için makul bir tercih. “Kendin yap” tarafındaki arka planı lhecker’ın yanıtlarına bakarak daha iyi anlayabilirsiniz
      [1]: https://news.ycombinator.com/threads?id=lhecker
  • Yaklaşık bir ay önce Microsoft’un, Windows kullanıcılarına daha tanıdık gelsin diye kendi Linux dağıtımına sahip olduğunu duymuştum. Hatırladığım kadarıyla oldukça basit bir GNOME yapılandırmasıydı; özel bir yanı yoktu
    Microsoft’un bash yerine PowerShell koyup, vim ve nano gibi seçeneklerin yanına Edit’i ekleyip, geliştirici kurulumuna .NET ve Visual Studio Code’u dahil eden Microsoft’a özel bir Linux dağıtımı oluşturma fırsatını kullanmaması şaşırtıcı
    Bunu varsayılan WSL kurulumu da yapabilirdi. Ubuntu veya Debian gibi tipik dağıtımlarla savaşı kazanamazdı belki, ama Windows kullanıcısı çok olduğu için belli bir pay alıp yaygın bir seçenek haline gelebilirdi
    Microsoft Linux çekirdeğini kontrol edemez, ama kullanıcı alanını ele geçirebilir. Kendi uygulamalarının popüler dağıtımlara varsayılan olarak kurulu gelmesini sağlayan bir akış yaratsaydı nasıl olurdu, hayal etmeye değer
    Microsoft Edit de PowerShell vb. gibi Linux’ta kullanılabiliyor. Yaklaşık 10 yıl önce kartlarını iyi oynasaydı, birçok Windows kullanıcısı WSL üzerinden kullandığı için dağıtımları bugün ilk 5 içinde olabilirdi
    Dev şirketler kişisel alana kendi izlerini zorla sokabilir. Şimdi tek gereken Microsoft Edit’te Co-Pilot’un varsayılan olarak açık gelmesi

    • Zamanla Microsoft’un Linux’a geçme olasılığının yüksek olduğunu düşünüyorum. En azından Windows Server ve gömülü Windows tarafında böyle; sonrasında Windows masaüstü de kademeli olarak değişebilir ya da Windows Legacy ile Windows “Linux Workstation” gibi seçeneklere ayrılabilir
      Linux çekirdeğinin üzerine bir tür “süper” WINE koyup, belirli programlar için fallback olarak sanal makinede sıkı entegre edilmiş klasik Windows sunmak gibi olabilir
      Ancak sorun şu ki NT çekirdeğinin tasarım açısından Linux çekirdeğinden daha iyi olduğu çok yer var. Örneğin NT çekirdeği GPU sürücüsü tamamen çökse bile toparlayabiliyor; Linux’un böyle bir durumda epey zorlanacağını düşünüyorum. Diğer sürücüler için de benzer
      Ama Windows, Microsoft için giderek bir varlıktan çok yükümlülük haline geliyor; özellikle de sunucu alanında. Başlıca gelir kaynakları Azure ve Office 365 ve hâlâ çift haneli büyürken Windows lisans büyümesi durgun
      En azından Linux tabanlı Windows Server ve Linux tabanlı Windows Workstation gibi sürümlerin çıkacağını düşünüyorum
    • WSL’nin var olma nedeni, kurumsal geliştiricilerin Linux çalıştırmanın bir yoluna ihtiyaç duymasıydı
      BT desteği ve teknik destek ekipleri genelde Linux’u iyi bilmez ve desteklemek de istemez. WSL bu sorunu çözüyor
      Geliştiricilerin çoğu Linux’un kendisini kullanmak istemiyor. Pek çok geliştirici terminal kullanmayı bile doğru düzgün bilmiyor ve GUI araçlarına güveniyor
    • Microsoft’un özel bir Linux dağıtımı yapmamış olması şaşırtıcıysa, son denemesi pek iyi gitmemişti. Adı Xenix idi
    • İsim bilinirliğinin yardımcı olduğunu düşünüyorum. Geliştiriciler adını hiç duymadıkları bir dağıtımı kurmak istemez, ama Ubuntu kurmak ister
      WSL Ubuntu’yu desteklediğinde bu bilinirlikten yararlanabilir
    • Microsoft’un birincil Linux dağıtımı olan Azure Linux’u (eski adıyla CBL-Mariner) insanların uzun zamandır yaptığı Windows’a benzeyen Linux masaüstü ortamı kaplamalarıyla karıştırmış gibisin
      Azure Linux, konteynerler, VM’ler, sunucular vb. için kullanılmak üzere Microsoft destekli bir işletim sistemidir
  • Bu sadece “canım istediği için” yapılmış bir proje gibi görünüyor. Ben de ne olup bittiğini anlamak için böyle şeyleri çok yaptığım için anlayabiliyorum
    Ama Turbo Vision’ı FPC ile yeniden yazıp birden çok hedefe derleme işi 20 yıldır vardı. Turbo Vision muhtemelen var olan en iyi metin modu pencereleme kütüphanesi
    Eğlenceli kısım, tüm metin ekranını şöyle bir diziye eşleyebildiğinde başlıyordu:
    var
    Screen: Array[1..80,1..25] Of Byte Absolute $B800; // or something like that as i recall
    Turbo Vision’ın getirdiği şey taşınabilir modal/modal olmayan pencerelerdi. Temelde bu diziyi bir döngü içinde sürekli yeniden yazan bir yapıydı ve oldukça seri çalışıyordu. O kütüphaneyle çok para kazandım

    • Merak edenler için, Unicode da destekleyen modern bir C++ Turbo Vision portu var:
      https://github.com/magiblot/tvision
    • Bu “canım istediği için” yapılmış bir proje değil. Windows’a dahil edilen ve SSH üzerinden de çalışan küçük bir TUI editörüne ihtiyaç vardı
      https://news.ycombinator.com/item?id=44034961
    • Tam olarak array[1..25, 1..80] of Word absolute $B800:0000
      TP’nin dizileri satır öncelikli sırada yerleştiriliyordu ve her karakter iki baytla temsil ediliyordu. Biri karakterin kendisi, diğeri öznitelikti (ön plan/arka plan rengi ve yanıp sönme)
      Bu yüzden daha iyi kullanım array[1..25, 1..80] of packed record ch: char; attr: byte end absolute $B800:0000 olur
      Hercules gibi siyah-beyaz metin ekranlarında (mod 7) $B800 yerine $B000 kullanmak yeterli
    • Turbo Vision ile nasıl para kazandığını merak ediyorum. Sakıncası yoksa paylaşmanı isterim
    • Her yeni modern TUI framework gördüğümde aynı hayal kırıklığını yaşıyorum. “Ah, bu Turbo Vision kadar iyi değil”
  • Şimdi Unicode destekli EDLIN bekliyorum
    Batch dosyalarında standart girdiden tuş vuruşlarını pipe ederek bazı düzenleme işlerini betik haline getirebildiğimi hatırlıyorum. sed veya awk’nin bazı işlevlerinin yerini alıyor gibiydi
    Denemedim ama vi ile de mümkün gibi. Bunun çok lanetli bir yöntem olup olmadığı ayrı mesele

    • Aradığın şey muhtemelen ed. Duruma göre -s ile birlikte kullanılır
  • İlginç. Açıkçası kimin kullanması için yapıldığını pek bilmiyorum ama eğlenceli görünüyor

    • Windows Terminal’de dosya düzenlemek isteyenler için. Eski edit komutu 2006’dan sonra Windows’ta desteklenmediği için, o zamandan beri komut satırında kullanılabilecek Microsoft kaynaklı bir editör yoktu.
      Bu editörün ne kadar hızlı olduğu etkileyici. https://github.com/microsoft/edit/pull/408

      Satır sonu aramaya özel bir SIMD rutini yazılırsa [125GB/s’ye kadar] çıkarılabilir

    • README’de doğrudan yazıyor:

      Amaç, terminale pek aşina olmayan kullanıcıların bile kolayca kullanabileceği erişilebilir bir editör sunmaktır

    • Notepad’e göre çok daha büyük bir iyileştirme
    • LSP desteği ya da ripgrep tabanlı arama varsa veya gelirse vim’in yerine seve seve kullanabilirim
      Şimdilik Helix kullanıyorum ama iyi bir TUI hoşuma gidiyor
    • vi’dan hoşlanmadığı için terminalde nano’nun yerine daha aklı başında bir şey arayan benim gibiler için
  • 1993’te edit ile ikili dosyaları açıp kalp şekillerinin görünmesinden keyif alırdım

    • O deneyim, DOS defrag görselleştirmesi ve kayıt dosyalarını doğrudan hex editörle düzenlemek, bugün geliştirici olmamın neredeyse başlıca nedenleri