Microsoft Edit
(github.com/microsoft)- 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
mseditalih-aliheditkarena 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
mseditke~/.local/bin
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/microsoft/edit/… | sh- Dengan flag tambahan,
--devmembangun langsung dari branch main, dan--systemmemasang 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=1dan 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 iniEDIT_CFG_LANGUAGESmenentukan daftar bahasa yang disertakan dalam build, dipisahkan dengan koma- Bahasa yang tersedia dapat dilihat di i18n/edit.toml
Catatan untuk pengelola paket
- Nama executable standar adalah
editdan nama alternatifnya adalahmsedit - Karena nama
editdapat berbenturan dengan perintah yang sudah ada, nama paket dan executable yang direkomendasikan adalahmsedit - Nama seperti
ms-editsebaiknya 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
- Windows:
- Jika SONAME di lingkungan instalasi berbeda, variabel lingkungan harus diatur saat build
EDIT_CFG_ICUUC_SONAME: contohlibicuuc.so.76EDIT_CFG_ICUI18N_SONAME: contohlibicui18n.so.76
- Simbol ICU diasumsikan diekspor secara default dalam bentuk seperti
u_errorNametanpa 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 macOSEDIT_CFG_ICU_RENAMING_VERSION=76: mencari simbol sepertiu_errorName_76
- Jika
EDIT_CFG_ICU_RENAMING_AUTO_DETECT=trueditetapkan, 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
--ignoredpadacargo testcargo test -- --ignored
1 komentar
Opini Hacker News
Minatnya begitu besar sampai tulisan ini muncul tiga kali dalam seminggu
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/
editsetidaknya saat langsung saya coba, bahkan belum mendukung syntax highlighting secara bawaanSaya memakainya sebagai editor terminal pengganti nano
[1]: https://craigbarnes.gitlab.io/dte/
File besar juga ditangani cukup baik
"winget install zyedidia.micro". Ini mengingatkan pada editor 8-bit dan 16-bit dari era serupaSaya 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?
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
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.batberisiedit 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 depanTidak 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 DOSSetelah mencobanya sebentar, sepertinya memang mendukung beberapa buffer, tetapi tampaknya tidak bisa berpindah buffer dengan key binding yang sama
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
Kalau mengetik satu baris seluruhnya dengan huruf kecil lalu menekan Enter, kata kunci akan otomatis diubah menjadi huruf besar. Tidak luar biasa, tetapi membantu
copy con, edit benar-benar terasa seperti penyelamatBanyak 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!
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
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
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
Jika WSL mendukung Ubuntu, ia bisa memanfaatkan pengenalan nama itu
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:
varScreen: Array[1..80,1..25] Of Byte Absolute $B800; // or something like that as i recallYang 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
https://github.com/magiblot/tvision
https://news.ycombinator.com/item?id=44034961
array[1..25, 1..80] of Word absolute $B800:0000Array 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:0000Pada display teks monokrom seperti Hercules (mode 7), cukup ganti
$B800menjadi$B000Sekarang 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
-sMenarik. Sejujurnya saya tidak begitu tahu ini dibuat untuk siapa, tapi kelihatannya menarik
editlama sudah tidak didukung di Windows sejak 2006, jadi sejak itu tidak ada editor dari Microsoft yang bisa dipakai di command lineCukup mengesankan seberapa cepat editor ini. https://github.com/microsoft/edit/pull/408
Saat ini saya memakai Helix, tapi saya suka TUI yang bagus
Pada 1993, saya dulu suka membuka file biner dengan edit dan menikmati melihat bentuk hati muncul