3 poin oleh GN⁺ 2025-06-26 | 1 komentar | Bagikan ke WhatsApp
  • Microsoft Edit adalah editor untuk kebutuhan penyuntingan sederhana, memberi penghormatan pada classic MS-DOS Editor sambil menghadirkan antarmuka modern dan kontrol input yang mirip VS Code
  • Tujuannya adalah menyediakan editor yang mudah diakses agar bahkan pengguna yang tidak terbiasa dengan terminal pun dapat menggunakannya dengan mudah
  • Di Windows dapat diinstal dengan WinGet, di macOS dengan Homebrew, dan di Linux melalui skrip instalasi jika distribusi tidak menyediakan biner atau jika ingin membangunnya sendiri
  • Dibangun dengan Rust, dan pengaturan nightly Rust direkomendasikan karena dapat sangat mengurangi ukuran biner dan sedikit meningkatkan performa
  • Pengelola paket disarankan menggunakan nama msedit alih-alih edit karena potensi konflik nama executable, dan fitur cari/ganti dipengaruhi oleh konfigurasi pustaka ICU

Tujuan dan karakter Microsoft Edit

  • Edit adalah editor sederhana dengan tujuan “simple editor for simple needs”
  • Memberi penghormatan pada classic MS-DOS Editor, sekaligus menyediakan antarmuka modern dan kontrol input yang mirip VS Code
  • Ditujukan sebagai editor yang aksesibel agar pengguna yang tidak terbiasa dengan terminal pun dapat memakainya dengan mudah

Cara instalasi

  • Biner dapat diunduh dari Releases page
  • Windows

    • Versi terbaru dapat diinstal dengan WinGet
    winget install Microsoft.Edit
    
  • Linux

    • Jika distribusi tidak menyediakan biner atau jika ingin membangun sendiri, skrip instalasi dapat digunakan
    • Prasyaratnya adalah Rust, kompiler C, ICU, curl atau wget, dan tar
    • Instalasi default memasang msedit ke ~/.local/bin
    curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/microsoft/edit/… | sh
    
    • Dengan flag tambahan, --dev membangun langsung dari branch main, dan --system memasang ke /usr/local/bin
    curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/microsoft/edit/… | sh -s -- --dev --system
    
  • macOS

    • Versi terbaru dapat diinstal dengan Homebrew
    brew install msedit
    

Cara build

  • Untuk build diperlukan instalasi Rust dan clone repositori
  • Jika menggunakan nightly Rust, build release dilakukan dengan perintah berikut
    cargo build --release --config .cargo/release.toml
    
  • Jika menggunakan stable Rust, cara yang direkomendasikan adalah menetapkan variabel lingkungan RUSTC_BOOTSTRAP=1 dan mengikuti petunjuk build nightly
    • Cara ini sangat mengurangi ukuran biner dan sedikit meningkatkan performa
  • Jika ingin build dengan stable Rust tanpa konfigurasi tambahan, gunakan perintah berikut
    cargo build --release
    

Opsi konfigurasi build

  • Konfigurasi dapat disesuaikan melalui variabel lingkungan saat build
  • EDIT_CFG_ICU* berkaitan dengan pengaturan nama pustaka ICU, dan pengelola paket Linux disarankan meninjau opsi ini
  • EDIT_CFG_LANGUAGES menentukan daftar bahasa yang disertakan dalam build, dipisahkan dengan koma

Catatan untuk pengelola paket

  • Nama executable standar adalah edit dan nama alternatifnya adalah msedit
  • Karena nama edit dapat berbenturan dengan perintah yang sudah ada, nama paket dan executable yang direkomendasikan adalah msedit
  • Nama seperti ms-edit sebaiknya dihindari
  • Jika memungkinkan, disarankan untuk menetapkan alias edit

Konfigurasi terkait ICU

  • Proyek ini secara opsional bergantung pada pustaka ICU untuk fitur cari dan ganti
  • Secara default, nama pustaka ICU dicari sesuai platform
    • Windows: icuuc.dll, icuin.dll
    • macOS: libicucore.dylib
    • Linux dan lainnya: libicuuc.so, libicui18n.so
  • Jika SONAME di lingkungan instalasi berbeda, variabel lingkungan harus diatur saat build
    • EDIT_CFG_ICUUC_SONAME: contoh libicuuc.so.76
    • EDIT_CFG_ICUI18N_SONAME: contoh libicui18n.so.76
  • Simbol ICU diasumsikan diekspor secara default dalam bentuk seperti u_errorName tanpa prefiks _ dan tanpa sufiks versi
  • Pada lingkungan yang menggunakan bentuk simbol berbeda, variabel lingkungan tambahan dapat dipakai
    • EDIT_CFG_ICU_CPP_EXPORTS=true: mencari simbol C++ seperti _u_errorName, dan aktif secara default di macOS
    • EDIT_CFG_ICU_RENAMING_VERSION=76: mencari simbol seperti u_errorName_76
  • Jika EDIT_CFG_ICU_RENAMING_AUTO_DETECT=true ditetapkan, executable akan mencoba mendeteksi nilai renaming version saat runtime
    • Cara ini tidak didukung secara resmi oleh ICU, sehingga disarankan untuk tidak bergantung padanya
    • Di UNIX, selain macOS, ini aktif secara default jika tidak ada opsi lain
  • Pengujian konfigurasi build dijalankan dengan menambahkan flag --ignored pada cargo test
    cargo test -- --ignored
    

1 komentar

 
GN⁺ 2025-06-26
Opini Hacker News
  • Minatnya begitu besar sampai tulisan ini muncul tiga kali dalam seminggu

    1. Penulisnya sendiri - https://news.ycombinator.com/item?id=44034961
    2. Ubuntu Publication - https://news.ycombinator.com/item?id=44306892
      Dan tulisan yang ini
  • Dulu saya merekomendasikan micro untuk target pengguna editor ini, jadi saya penasaran apakah sekarang perlu diganti

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

    • Sepertinya tidak perlu diganti
      edit setidaknya saat langsung saya coba, bahkan belum mendukung syntax highlighting secara bawaan
    • Terakhir kali saya cek, dari ukuran binernya saja micro sudah pantas disebut macro
    • Ada juga dte. Editor yang sangat ringan, menargetkan titik yang persis sama, tetapi punya lebih banyak fitur seperti dukungan Unicode dan key binding CUA
      Saya memakainya sebagai editor terminal pengganti nano
      [1]: https://craigbarnes.gitlab.io/dte/
    • Micro adalah editor yang bagus untuk menggantikan sesuatu seperti nano. Namun sepertinya kurang cocok sebagai pengganti edit; edit sangat mendasar, sementara micro cukup dapat diperluas dengan Lua
      File besar juga ditangani cukup baik
    • Di Windows pun bisa dipasang hanya dengan "winget install zyedidia.micro". Ini mengingatkan pada editor 8-bit dan 16-bit dari era serupa
  • Saya benar-benar penasaran bagaimana proyek seperti ini disetujui di organisasi sebesar Microsoft. Apakah ini proyek sampingan beberapa developer, atau bagian dari roadmap produk?
    Bagaimana mereka meyakinkan leadership untuk meluangkan waktu ke sini?

    • Dari penjelasannya, mereka membutuhkan editor teks command-line yang berjalan pada instalasi Windows Core server
      Windows sudah cukup lama menyertakan SSH Server sehingga bisa dikelola sepenuhnya hanya lewat SSH, dan mereka membutuhkan editor tanpa mode yang bisa dipakai admin Windows yang tidak berpengalaman dengan vi
    • Editor teks adalah target yang terlalu alami untuk integrasi Copilot
    • Setiap grup harus melakukan sesuatu dan akhirnya mengajukan ide. Kadang datang dari arahan leadership seperti “pakai Copilot”, kadang ide dari acara seperti hackerdayz berkembang lebih jauh
      Ada juga kasus di mana staf teknis di organisasi riset memulai sesuatu dengan ruang gerak, dan ada pula yang mendapatkan pendanaan setelah analisis mendalam serta beberapa putaran bantahan
      Melihat jumlah kontributor di sini, proyek ini kemungkinan besar merupakan investasi strategis. Bukan sesuatu yang muncul dalam semalam
  • edit.com asli dari DOS 6.22 dan kemudian 7.0, sekitar era Win95, adalah IDE pertama saya. Saya mulai dengan qbasic, terbiasa dengan antarmuka yang mirip atau sama, dan terus memakai edit.com saat belajar C/C++ dengan djgpp
    “File proyek” saya adalah e.bat berisi edit file1.cpp file2.cpp file3.cpp, dan saya memakainya karena ada dukungan multi-file yang cukup bagus, mudah berpindah dengan Alt-1,2,3. Sampai sekarang pun saya memetakan ulang key binding editor agar Alt/Cmd-1,2,3 memindahkan file, dan berusaha menjaga “set aktif” tetap kecil di beberapa file depan
    Tidak ada syntax highlighting dan perilaku indentasinya juga tidak terlalu bagus, jadi itu bukan editor kode yang hebat. Karena itu di awal karier saya memakai indentasi dua spasi yang mudah diketik tangan dan tidak terasa seperti tab. Meski begitu, rasanya sangat dekat dengan kode
    Saya tahu banyak orang lain memakai editor seperti qedit, tetapi entah kenapa tidak cocok bagi saya, dan editor gaya Unix juga terasa canggung di DOS
    Setelah mencobanya sebentar, sepertinya memang mendukung beberapa buffer, tetapi tampaknya tidak bisa berpindah buffer dengan key binding yang sama

    • Sebaiknya hal seperti itu diajukan sebagai issue. Hal semacam ini mungkin akan diakomodasi kalau masuk sejak awal
      Dan itu bukan sekadar mirip, melainkan secara harfiah sama. EDIT.COM hanya menjalankan QBASIC dengan flag khusus, dan QBASIC juga bisa dijalankan langsung dengan flag itu. Seperti yang saya katakan di https://news.ycombinator.com/item?id=44037509, saya benar-benar mencobanya untuk bersenang-senang
    • Memang tidak ada syntax highlighting, tetapi kalau harus menyebutnya, ada semacam kapitalisasi sintaks
      Kalau mengetik satu baris seluruhnya dengan huruf kecil lalu menekan Enter, kata kunci akan otomatis diubah menjadi huruf besar. Tidak luar biasa, tetapi membantu
    • Setelah masa copy con, edit benar-benar terasa seperti penyelamat
  • Banyak hal yang saya suka. Pertama-tama, daftar dependensinya kosong; itu saja sudah meyakinkan saya
    Berfungsi dengan sangat baik. Sulit dipercaya mereka membuat seluruh TUI lengkap dengan file browser dan dialog box khusus untuk ini. Saya ingin memakainya di proyek saya juga, dan penasaran seberapa mudahnya. Kalau ada orang dari proyek ini di sini, saya juga penasaran kenapa tidak memakai Ratatui
    Kualitas kodenya juga kelas atas, dan hanya satu kata yang bisa saya katakan: Bravo!

    • Kecuali beberapa dependency pengembangan yang mempermudah pengujian, secara harfiah tidak ada dependency
      Untuk sesuatu yang didistribusikan sebagai alat dasar yang dipakai admin di sistem operasi seperti Windows, itu pilihan yang masuk akal. Untuk latar belakang soal “membuat sendiri”, jawaban lhecker bisa memberi lebih banyak informasi
      [1]: https://news.ycombinator.com/threads?id=lhecker
  • Sekitar sebulan lalu saya mendengar bahwa Microsoft punya distribusi Linux sendiri agar pengguna Windows merasa lebih familier. Seingat saya konfigurasinya GNOME yang cukup sederhana, jadi tidak ada yang terlalu istimewa
    Agak mengejutkan Microsoft tidak memakai kesempatan untuk membuat distribusi Linux khusus Microsoft dengan PowerShell sebagai pengganti bash, memasukkan Edit bersama opsi seperti vim dan nano, serta menyertakan .NET dan Visual Studio Code pada instalasi untuk developer
    Itu juga bisa dijadikan instalasi WSL bawaan. Mungkin tidak akan menang melawan distribusi umum seperti Ubuntu atau Debian, tetapi karena pengguna Windows banyak, ia bisa memperoleh pangsa tertentu dan menjadi pilihan yang lazim
    Microsoft tidak bisa menguasai kernel Linux, tetapi bisa menguasai user space. Menarik dibayangkan apa jadinya jika mereka menciptakan arus di mana aplikasi mereka terpasang secara default di distribusi populer
    Microsoft Edit juga bisa dipakai di Linux, sama seperti PowerShell dan lainnya. Kalau sekitar 10 tahun lalu mereka memainkan kartu dengan tepat, distribusi mereka mungkin sekarang masuk 5 besar berkat banyaknya pengguna Windows yang memakainya lewat WSL
    Perusahaan raksasa bisa menyisipkan jejaknya ke ruang pribadi orang. Sekarang tinggal Microsoft Edit mengaktifkan Co-Pilot secara default

    • Seiring waktu, saya rasa besar kemungkinan Microsoft akan berpindah ke Linux. Setidaknya untuk Windows Server dan Windows embedded, lalu setelah itu desktop Windows juga bisa berubah bertahap atau terbelah menjadi pilihan seperti Windows Legacy dan Windows “Linux Workstation”
      Bentuknya bisa berupa semacam WINE “super” di atas kernel Linux, dengan fallback Windows klasik yang terintegrasi erat di mesin virtual untuk program tertentu
      Namun masalahnya, kernel NT punya banyak sisi yang secara desain lebih baik daripada kernel Linux. Misalnya, kernel NT bisa pulih bahkan ketika driver GPU benar-benar mati, sedangkan Linux tampaknya akan cukup kesulitan dalam situasi seperti itu. Driver lain juga serupa
      Tetapi Windows makin lama makin menjadi liabilitas bagi Microsoft ketimbang aset, terutama di area server. Sumber pendapatan utama adalah Azure dan Office 365, yang masih tumbuh dua digit, sementara pertumbuhan lisensi Windows stagnan
      Setidaknya saya rasa akan ada versi seperti Windows Server berbasis Linux dan Windows Workstation berbasis Linux
    • WSL ada karena developer perusahaan membutuhkan cara untuk menjalankan Linux
      Staf dukungan IT dan dukungan teknis biasanya tidak terlalu paham Linux dan juga tidak ingin mendukungnya. WSL memecahkan masalah ini
      Sebagian besar developer tidak ingin memakai Linux itu sendiri. Banyak developer bahkan tidak benar-benar tahu cara memakai terminal dan bergantung pada alat GUI
    • Kalau terasa mengejutkan Microsoft tidak membuat distribusi Linux khusus, percobaan terakhirnya tidak berjalan begitu baik. Namanya Xenix
    • Menurut saya pengenalan nama membantu. Developer tidak ingin memasang distribusi yang belum pernah mereka dengar, tetapi mereka mau memasang Ubuntu
      Jika WSL mendukung Ubuntu, ia bisa memanfaatkan pengenalan nama itu
    • Sepertinya Anda mencampuradukkan distribusi Linux utama Microsoft, Azure Linux (sebelumnya CBL-Mariner), dengan skin lingkungan desktop Linux yang tampak seperti Windows dan sudah lama dibuat orang-orang
      Azure Linux adalah sistem operasi yang didukung Microsoft untuk digunakan pada container, VM, server, dan sebagainya
  • Ini tampak seperti proyek yang dibuat sekadar “karena ingin mencoba”. Saya juga sering melakukan hal semacam itu untuk memahami apa yang terjadi, jadi saya mengerti
    Namun pekerjaan menulis ulang Turbo Vision dengan FPC dan mengompilasinya ke berbagai target sudah ada sejak 20 tahun lalu. Turbo Vision mungkin adalah library windowing mode teks terbaik yang pernah ada
    Bagian menariknya dimulai ketika seluruh layar teks bisa dipetakan ke array seperti ini:
    var
    Screen: Array[1..80,1..25] Of Byte Absolute $B800; // or something like that as i recall
    Yang dibawa Turbo Vision adalah jendela modal/non-modal yang bisa dipindahkan. Pada dasarnya strukturnya terus menulis ulang array itu di dalam loop, dan rasanya cukup responsif. Saya menghasilkan banyak sekali uang dengan library itu

    • Untuk yang penasaran, ada port Turbo Vision modern berbasis C++ yang juga mendukung Unicode:
      https://github.com/magiblot/tvision
    • Ini bukan proyek yang dibuat sekadar “karena ingin mencoba”. Yang dibutuhkan adalah editor TUI kecil yang disertakan di Windows dan juga berfungsi lewat SSH
      https://news.ycombinator.com/item?id=44034961
    • Tepatnya array[1..25, 1..80] of Word absolute $B800:0000
      Array di TP disusun dalam urutan row-major, dan setiap karakter direpresentasikan oleh dua byte. Satu untuk karakter itu sendiri, satu lagi untuk atribut (warna foreground/background dan kedipan)
      Jadi jika ditulis lebih baik: array[1..25, 1..80] of packed record ch: char; attr: byte end absolute $B800:0000
      Pada display teks monokrom seperti Hercules (mode 7), cukup ganti $B800 menjadi $B000
    • Saya penasaran bagaimana Anda menghasilkan uang dengan Turbo Vision. Kalau tidak keberatan, mohon ceritakan
    • Setiap kali melihat framework TUI modern baru, kekecewaannya selalu sama. “Ah, ini tidak sebagus Turbo Vision
  • Sekarang saya menunggu EDLIN dengan dukungan Unicode
    Saya ingat kita bisa mem-pipe input tombol lewat stdin dari batch file untuk menskripkan operasi pengeditan tertentu. Rasanya seperti menggantikan sebagian fungsi sed atau awk
    Saya belum pernah mencobanya, tetapi sepertinya itu juga mungkin dengan vi. Terlepas dari apakah itu cara yang sangat terkutuk atau bukan

    • Yang Anda cari mungkin ed. Dalam beberapa kasus bisa dipakai dengan -s
  • Menarik. Sejujurnya saya tidak begitu tahu ini dibuat untuk siapa, tapi kelihatannya menarik

    • Ini untuk orang-orang yang ingin mengedit file di Windows Terminal. Perintah edit lama sudah tidak didukung di Windows sejak 2006, jadi sejak itu tidak ada editor dari Microsoft yang bisa dipakai di command line
      Cukup mengesankan seberapa cepat editor ini. https://github.com/microsoft/edit/pull/408

      Kalau menulis rutin SIMD yang dikhususkan untuk pencarian line break, bisa didorong hingga [125GB/s]

    • Tertulis langsung di README:

      Tujuannya adalah menyediakan editor yang mudah diakses dan gampang dipakai bahkan oleh pengguna yang nyaris tidak terbiasa dengan terminal

    • Ini peningkatan yang jauh lebih besar dibanding Notepad
    • Kalau ada atau nanti hadir dukungan LSP atau pencarian berbasis ripgrep, saya dengan senang hati bisa menggantikan vim dengannya
      Saat ini saya memakai Helix, tapi saya suka TUI yang bagus
    • Ini untuk orang seperti saya yang tidak suka vi dan mencari sesuatu yang lebih waras untuk menggantikan nano di terminal
  • Pada 1993, saya dulu suka membuka file biner dengan edit dan menikmati melihat bentuk hati muncul

    • Pengalaman itu, visualisasi DOS defrag, dan mengedit file save secara manual dengan hex editor kira-kira adalah alasan saya menjadi developer sekarang