3 पॉइंट द्वारा GN⁺ 2025-06-26 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Microsoft Edit सरल editing जरूरतों के लिए एक editor है, जो classic MS-DOS Editor को सम्मान देते हुए VS Code जैसा आधुनिक interface और input controls देता है
  • इसका लक्ष्य ऐसा highly accessible editor देना है जिसे terminal से परिचित न होने वाले users भी आसानी से इस्तेमाल कर सकें
  • Windows पर WinGet, macOS पर Homebrew, और Linux पर अगर distribution binary उपलब्ध नहीं है या आप सीधे build करना चाहते हैं, तो installation script से install किया जा सकता है
  • इसे Rust में build किया गया है, और nightly Rust configuration को binary size काफी घटाने और performance में हल्का सुधार करने के तरीके के रूप में recommend किया गया है
  • Package managers को executable name conflict की संभावना के कारण edit के बजाय msedit नाम recommend किया गया है, और search/replace functionality ICU library settings से प्रभावित होती है

Microsoft Edit का उद्देश्य और प्रकृति

  • Edit का लक्ष्य “simple editor for simple needs” यानी सरल जरूरतों के लिए एक सरल editor होना है
  • यह classic MS-DOS Editor को सम्मान देते हुए भी आधुनिक interface और VS Code जैसे input controls देता है
  • यह ऐसा accessible editor बनने का प्रयास करता है जिसे terminal से परिचित न होने वाले users भी आसानी से इस्तेमाल कर सकें

Installation method

  • Binaries Releases page से download की जा सकती हैं
  • Windows

    • Latest version WinGet से install की जा सकती है
    winget install Microsoft.Edit
    
  • Linux

    • अगर distribution binary provide नहीं करता या आप खुद build करना चाहते हैं, तो installation script इस्तेमाल कर सकते हैं
    • Requirements हैं Rust, C compiler, ICU, curl या wget, और tar
    • Default installation msedit को ~/.local/bin में install करती है
    curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/microsoft/edit/… | sh
    
    • Additional flags में --dev main branch से सीधे build करता है, और --system /usr/local/bin में install करता है
    curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/microsoft/edit/… | sh -s -- --dev --system
    
  • macOS

    • Latest version Homebrew से install की जा सकती है
    brew install msedit
    

Build method

  • Build के लिए Rust installation और repository clone की जरूरत होती है
  • nightly Rust इस्तेमाल करने पर, release build के लिए यह command चलाएं
    cargo build --release --config .cargo/release.toml
    
  • stable Rust इस्तेमाल करने पर RUSTC_BOOTSTRAP=1 environment variable set करके nightly build instructions follow करना recommend किया गया है
    • यह तरीका binary size काफी घटाता है और performance में हल्का सुधार करता है
  • बिना अलग configuration के stable Rust से build करना हो, तो यह command इस्तेमाल करें
    cargo build --release
    

Build configuration options

  • Build के दौरान environment variables से configuration adjust किया जा सकता है
  • EDIT_CFG_ICU* ICU library name settings से संबंधित है, और Linux package managers को यह option review करने की सलाह दी जाती है
  • EDIT_CFG_LANGUAGES build में शामिल करने वाली languages की list comma-separated रूप में specify करता है

Package managers के लिए notes

  • Standard executable name edit है और alternative name msedit है
  • Existing commands के साथ edit name conflict कर सकता है, इसलिए package और executable name के लिए msedit recommend किया गया है
  • ms-edit जैसे नामों से बचना चाहिए
  • अगर संभव हो, तो edit alias assign करने का तरीका recommend किया गया है

ICU-related settings

  • यह project search और replace functions के लिए वैकल्पिक रूप से ICU library पर निर्भर करता है
  • Default रूप से platform-specific ICU library names ढूंढता है
    • Windows: icuuc.dll, icuin.dll
    • macOS: libicucore.dylib
    • Linux और अन्य: libicuuc.so, libicui18n.so
  • अगर installation environment का SONAME अलग है, तो build के समय environment variables set करने होंगे
    • EDIT_CFG_ICUUC_SONAME: उदाहरण libicuuc.so.76
    • EDIT_CFG_ICUI18N_SONAME: उदाहरण libicui18n.so.76
  • ICU symbols को default रूप से _ prefix और version suffix के बिना u_errorName जैसे form में export हुआ माना जाता है
  • अलग symbol form इस्तेमाल करने वाले environments में additional environment variables इस्तेमाल किए जा सकते हैं
    • EDIT_CFG_ICU_CPP_EXPORTS=true: _u_errorName जैसे C++ symbols ढूंढता है, और macOS में default रूप से enabled है
    • EDIT_CFG_ICU_RENAMING_VERSION=76: u_errorName_76 जैसे symbols ढूंढता है
  • EDIT_CFG_ICU_RENAMING_AUTO_DETECT=true set करने पर executable runtime में renaming version value detect करने की कोशिश करता है
    • यह तरीका ICU द्वारा officially supported नहीं है, इसलिए इस पर निर्भर न रहने की सलाह दी जाती है
    • UNIX में, macOS को छोड़कर, जब कोई अन्य option न हो तो यह default रूप से enabled होता है
  • Build settings test cargo test में --ignored flag जोड़कर चलाया जाता है
    cargo test -- --ignored
    

1 टिप्पणियां

 
GN⁺ 2025-06-26
Hacker News की राय
  • इस पोस्ट में इतनी दिलचस्पी थी कि यह एक ही हफ्ते में तीन बार तक आई

    1. खुद लेखक - https://news.ycombinator.com/item?id=44034961
    2. Ubuntu Publication - https://news.ycombinator.com/item?id=44306892
      और यह मौजूदा पोस्ट
  • इस editor के target users के लिए पहले मैं micro recommend करता था, अब सोच रहा हूं कि क्या बदलना चाहिए

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

    • बदलने की जरूरत नहीं लगती
      edit ने, कम-से-कम तुरंत इस्तेमाल करके देखने पर, syntax highlighting भी default रूप से support नहीं की
    • पिछली बार जब देखा था, तो binary size के हिसाब से micro को macro कहना चाहिए था
    • dte भी है। यह ठीक उसी जगह को target करता है, लेकिन Unicode support, CUA key bindings जैसी ज्यादा सुविधाओं वाला बहुत हल्का editor है
      मैं इसे nano की जगह terminal editor के तौर पर इस्तेमाल कर रहा हूं
      [1]: https://craigbarnes.gitlab.io/dte/
    • Micro, nano जैसी चीजों की जगह लेने के लिए शानदार editor है। हालांकि edit के replacement के तौर पर शायद अच्छा नहीं होगा; edit बहुत basic है, जबकि micro Lua के जरिए काफी extensible है
      बड़े files भी काफी अच्छे से handle करता है
    • Windows पर भी सिर्फ "winget install zyedidia.micro" से install किया जा सकता है। उसी दौर के 8-bit और 16-bit editors याद आते हैं
  • Microsoft जैसे बड़े संगठन में ऐसे project को approval कैसे मिलता है, यह सच में जानना चाहूंगा। क्या यह कुछ developers का side project है, या product roadmap का हिस्सा?
    leadership को इस पर time लगाने के लिए कैसे convince किया होगा?

    • description के हिसाब से Windows Core server installation में चलने वाले command-line text editor की जरूरत थी
      Windows में SSH Server शामिल हुए काफी समय हो गया है, इसलिए सिर्फ SSH से भी पूरी तरह manage किया जा सकता है, और ऐसे Windows admins के लिए modeless editor चाहिए था जिनके पास vi का experience नहीं है
    • text editor, Copilot integration के लिए बहुत natural target है
    • हर group को कुछ-न-कुछ करना होता है और ideas देने पड़ते हैं। कभी यह “Copilot इस्तेमाल करो” जैसी leadership direction से आता है, तो कभी hackerdayz जैसे events के ideas आगे बढ़ जाते हैं
      research organization में technical लोग कभी खाली समय में शुरू करते हैं, और कभी गहरी analysis व कई rounds की मंजूरी के बाद funding मिलती है
      यहां contributors की संख्या देखकर लगता है कि यह project शायद strategic investment रहा होगा। यह रातोंरात नहीं बना
  • DOS 6.22 और बाद के 7.0, यानी Win95 के आसपास का original edit.com मेरा पहला IDE था। मैंने qbasic से शुरुआत की थी, इसलिए वैसा ही या वही interface familiar था, और djgpp के साथ C/C++ सीखते समय भी edit.com इस्तेमाल करता रहा
    मेरी “project file” e.bat थी जिसमें edit file1.cpp file2.cpp file3.cpp था, और Alt-1,2,3 से आसानी से switch होने वाला काफी अच्छा multi-file support था, इसलिए मैं इसे इस्तेमाल करता था। आज भी editor key bindings को Alt/Cmd-1,2,3 से files switch करने के लिए remap करता हूं, और “active set” को सामने की कुछ files तक छोटा रखने की कोशिश करता हूं
    इसमें syntax highlighting नहीं थी और indentation behavior भी बहुत अच्छा नहीं था, इसलिए यह बेहतरीन code editor नहीं था। इसलिए career की शुरुआत में मैंने दो-space indentation इस्तेमाल की, जो हाथ से type करना आसान था और tabs जैसी नहीं लगती थी। फिर भी code से सीधे जुड़े होने का अहसास बहुत मजबूत था
    मुझे पता था कि दूसरे लोग qedit जैसे editors बहुत इस्तेमाल करते हैं, लेकिन अजीब तरह से वह मुझे suit नहीं करते थे, और Unix-style editors भी DOS पर awkward लगते थे
    थोड़ी देर इस्तेमाल करके देखा तो कई buffers support करता लगता है, लेकिन शायद उसी key binding से buffer switching नहीं होती

    • ऐसी चीजों को issue के रूप में उठाना अच्छा रहेगा। इस तरह की चीजें शुरुआत में आएं तो शामिल होने की संभावना रहती है
      और यह सिर्फ मिलता-जुलता नहीं था, सचमुच वही था। EDIT.COM बस एक special flag के साथ QBASIC चलाता था, और QBASIC को उस flag के साथ सीधे भी चला सकते थे। https://news.ycombinator.com/item?id=44037509 में जैसा कहा था, मैंने मजे के लिए सच में ऐसा करके देखा था
    • syntax highlighting नहीं थी, लेकिन बेहतर शब्द न होने पर कहूं तो syntax capitalization थी
      अगर आप पूरी line lowercase में type करके enter दबाते, तो reserved words अपने-आप uppercase में बदल जाते थे। बहुत बड़ी चीज नहीं थी, लेकिन मददगार थी
    • copy con के दिनों के बाद आया edit सच में तारणहार था
  • इसमें पसंद आने वाली बहुत-सी बातें हैं। सबसे पहले, dependency list खाली है—मेरे लिए तो यही काफी है
    यह बहुत अच्छी तरह काम करता है। यकीन नहीं होता कि file browser और dialogs तक वाला पूरा TUI इसी के लिए बनाया गया। मैं इसे अपने project में भी इस्तेमाल करना चाहता हूं, पर पता नहीं कितना आसान होगा। अगर project से जुड़ा कोई यहां है, तो यह भी जानना चाहूंगा कि Ratatui क्यों नहीं इस्तेमाल किया
    code quality भी top-notch है, और बस एक ही बात कह सकता हूं: Bravo!

    • testing आसान बनाने वाली कुछ dev dependencies को छोड़ दें तो सचमुच कोई dependency नहीं है
      Windows जैसे operating system में admins के लिए basic tool के रूप में ship की जाने वाली चीज के लिए यह reasonable choice है। “खुद बनाना” वाले background के बारे में lhecker के जवाब से और समझ मिलती है
      [1]: https://news.ycombinator.com/threads?id=lhecker
  • करीब एक महीने पहले सुना था कि Microsoft के पास Windows users को ज़्यादा परिचित महसूस कराने के लिए अपनी Linux distribution है। मेरी याद में वह काफी साधारण GNOME configuration थी, इसलिए उसमें कुछ खास नहीं था
    हैरानी है कि Microsoft ने bash की जगह PowerShell डालने, vim और nano जैसे विकल्पों के साथ Edit शामिल करने, और developer install में .NET और Visual Studio Code जोड़ने वाली अपनी Microsoft-केंद्रित Linux distribution बनाने का मौका नहीं लिया
    इसे default WSL install भी बनाया जा सकता था। Ubuntu या Debian जैसी पारंपरिक distributions से जंग में शायद यह जीतता नहीं, लेकिन Windows users बहुत हैं, इसलिए कुछ हिस्सा हासिल कर आम विकल्प बन सकता था
    Microsoft Linux kernel पर नियंत्रण नहीं कर सकता, लेकिन user space पर पकड़ बना सकता है। कल्पना करने लायक है कि अगर उसने अपनी applications को लोकप्रिय distributions में default install होने की दिशा बना दी होती तो क्या होता
    Microsoft Edit भी PowerShell वगैरह की तरह Linux पर इस्तेमाल किया जा सकता है। अगर करीब 10 साल पहले पत्ते सही खेले होते, तो बहुत से Windows users के WSL के जरिए इस्तेमाल करने के कारण उनकी distribution आज top 5 में हो सकती थी
    बड़ी कंपनियां निजी जगह में अपनी छाप ठेल सकती हैं। अब बस Microsoft Edit में Co-Pilot default रूप से चालू होना बाकी है

    • समय के साथ मुझे लगता है कि Microsoft के Linux की ओर जाने की संभावना बड़ी है। कम से कम Windows Server और embedded Windows के मामले में तो ऐसा है, और बाद में Windows desktop भी धीरे-धीरे बदल सकता है या Windows Legacy और Windows “Linux Workstation” जैसे विकल्पों में बंट सकता है
      यह कुछ ऐसा हो सकता है कि Linux kernel पर एक तरह का “super” WINE रखा जाए, और कुछ खास programs के लिए virtual machine में tight integration वाला classic Windows fallback के रूप में दिया जाए
      हालांकि समस्या यह है कि design के लिहाज से NT kernel कई मामलों में Linux kernel से बेहतर है। उदाहरण के लिए, NT kernel GPU driver के पूरी तरह मर जाने पर भी recover कर सकता है, जबकि Linux को ऐसी स्थिति में काफी दिक्कत होगी। दूसरे drivers के साथ भी कुछ ऐसा ही है
      लेकिन Windows, Microsoft के लिए asset से ज़्यादा धीरे-धीरे liability बनता जा रहा है, खासकर server क्षेत्र में। मुख्य revenue sources Azure और Office 365 हैं और वे अब भी double-digit growth में हैं, जबकि Windows licensing growth ठहरी हुई है
      कम-से-कम Linux-based Windows Server और Linux-based Windows Workstation जैसे versions तो आएंगे, ऐसा लगता है
    • WSL के मौजूद होने की वजह यह थी कि enterprise developers को Linux चलाने का तरीका चाहिए था
      IT support और tech support वाले आम तौर पर Linux को अच्छी तरह नहीं जानते और उसे support करना भी नहीं चाहते। WSL इस समस्या को हल करता है
      अधिकांश developers खुद Linux इस्तेमाल करना नहीं चाहते। कई developers terminal का इस्तेमाल भी ठीक से नहीं जानते और GUI tools पर निर्भर रहते हैं
    • अगर यह हैरानी की बात लगती है कि Microsoft ने अपनी Linux distribution नहीं बनाई, तो आखिरी कोशिश इतनी अच्छी नहीं रही थी। उसका नाम Xenix था
    • मुझे लगता है name recognition मदद करता है। Developers ऐसी distribution install नहीं करना चाहते जिसके बारे में उन्होंने कभी सुना न हो, लेकिन Ubuntu install करना चाहते हैं
      WSL अगर Ubuntu को support करता है, तो वह उस पहचान का फायदा उठा सकता है
    • लगता है आपने Microsoft की primary Linux distribution Azure Linux (पूर्व में CBL-Mariner) और उन Linux desktop environment skins को मिला दिया है जिन्हें लोग लंबे समय से Windows जैसा दिखाने के लिए बनाते आए हैं
      Azure Linux containers, VM, servers आदि के लिए Microsoft-supported operating system है
  • यह बस “मन था, इसलिए करके देखा” वाला project लगता है। मैंने भी क्या हो रहा है समझने के लिए ऐसी बहुत चीजें की हैं, इसलिए समझ सकता हूं
    लेकिन Turbo Vision को FPC में फिर से लिखकर कई targets के लिए compile करने का काम 20 साल से हो रहा है। Turbo Vision शायद अब तक की सबसे अच्छी text mode windowing library है
    मजेदार हिस्सा तब शुरू होता है जब आप पूरी text screen को इस तरह के array में map कर सकते हैं:
    var
    Screen: Array[1..80,1..25] Of Byte Absolute $B800; // or something like that as i recall
    Turbo Vision ने movable modal/non-modal windows दिए थे। मूल रूप से यह उस array को loop में लगातार rewrite करने वाली संरचना थी, और काफी तेज थी। उस library से मैंने बहुत पैसा कमाया

    • जिन लोगों को रुचि हो, उनके लिए Unicode support वाला modern C++ Turbo Vision port मौजूद है:
      https://github.com/magiblot/tvision
    • यह “मन था, इसलिए करके देखा” वाला project नहीं है। Windows में शामिल होने वाला और SSH के पार भी काम करने वाला छोटा TUI editor चाहिए था
      https://news.ycombinator.com/item?id=44034961
    • सही रूप में यह array[1..25, 1..80] of Word absolute $B800:0000 है
      TP के arrays row-major order में रखे जाते थे, और हर character दो bytes से represent होता था। एक खुद character, दूसरा attribute (foreground/background color और blink) था
      इसलिए बेहतर तरीके से लिखें तो array[1..25, 1..80] of packed record ch: char; attr: byte end absolute $B800:0000 है
      Hercules जैसे monochrome text display (mode 7) में $B800 को $B000 से बदल दें
    • जिज्ञासा है कि Turbo Vision से आपने पैसा कैसे कमाया। अगर ठीक लगे तो share करें
    • हर बार जब कोई नया modern TUI framework देखता हूं, निराशा वही रहती है। “अरे, यह Turbo Vision जितना अच्छा नहीं है”
  • अब Unicode support वाले EDLIN का इंतजार कर रहा हूं
    याद है कि batch file में standard input से keypresses pipe करके कुछ editing कामों को script किया जा सकता था। यह sed या awk की कुछ functionality की जगह लेने जैसा लगता था
    मैंने करके नहीं देखा, लेकिन vi से भी संभव लगता है। वह बहुत cursed तरीका है या नहीं, यह अलग बात है

    • आप शायद ed ढूंढ रहे हैं। स्थिति के अनुसार इसे -s के साथ इस्तेमाल करें
  • दिलचस्प। सच कहूँ तो यह किसके इस्तेमाल के लिए बनाया गया है, यह पूरी तरह समझ नहीं आता, लेकिन दिलचस्प दिखता है

    • यह उन लोगों के लिए है जो Windows Terminal में files edit करना चाहते हैं। पुराना edit command 2006 के बाद Windows में supported नहीं रहा, इसलिए उसके बाद से command line में इस्तेमाल करने लायक Microsoft का कोई editor नहीं था
      यह editor कितना तेज़ है, यह प्रभावित करता है। https://github.com/microsoft/edit/pull/408

      line break search के लिए खास तौर पर SIMD routine लिखें तो इसे [125GB/s तक] बढ़ाया जा सकता है

    • README में सीधे लिखा है:

      लक्ष्य ऐसा accessible editor देना है जिसे terminal से बहुत कम परिचित users भी आसानी से इस्तेमाल कर सकें

    • Notepad की तुलना में यह बहुत बड़ा सुधार है
    • अगर LSP support या ripgrep-based search हो, या आगे आ जाए, तो मैं खुशी-खुशी vim की जगह इसे इस्तेमाल कर सकता हूँ
      अभी Helix इस्तेमाल कर रहा हूँ, लेकिन अच्छा TUI पसंद है
    • यह मेरे जैसे लोगों के लिए है जो vi पसंद नहीं करते और terminal में nano का ज़्यादा समझदार विकल्प ढूँढ रहे हैं
  • 1993 में मैं edit से binary files खोलकर heart shapes दिखने का आनंद लिया करता था

    • वही अनुभव, DOS defrag visualization, और save files को सीधे hex edit करना—ये लगभग वही वजहें हैं जिनसे मैं आज developer बना हूँ