Microsoft Edit
(github.com/microsoft)- 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 में
--devmain 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=1environment 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_LANGUAGESbuild में शामिल करने वाली languages की list comma-separated रूप में specify करता है- Available languages i18n/edit.toml में हैं
Package managers के लिए notes
- Standard executable name
editहै और alternative namemseditहै - Existing commands के साथ
editname conflict कर सकता है, इसलिए package और executable name के लिएmseditrecommend किया गया है ms-editजैसे नामों से बचना चाहिए- अगर संभव हो, तो
editalias 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
- Windows:
- अगर installation environment का SONAME अलग है, तो build के समय environment variables set करने होंगे
EDIT_CFG_ICUUC_SONAME: उदाहरणlibicuuc.so.76EDIT_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=trueset करने पर executable runtime में renaming version value detect करने की कोशिश करता है- यह तरीका ICU द्वारा officially supported नहीं है, इसलिए इस पर निर्भर न रहने की सलाह दी जाती है
- UNIX में, macOS को छोड़कर, जब कोई अन्य option न हो तो यह default रूप से enabled होता है
- Build settings test
cargo testमें--ignoredflag जोड़कर चलाया जाता हैcargo test -- --ignored
1 टिप्पणियां
Hacker News की राय
इस पोस्ट में इतनी दिलचस्पी थी कि यह एक ही हफ्ते में तीन बार तक आई
और यह मौजूदा पोस्ट
इस editor के target users के लिए पहले मैं micro recommend करता था, अब सोच रहा हूं कि क्या बदलना चाहिए
1: https://micro-editor.github.io/
editने, कम-से-कम तुरंत इस्तेमाल करके देखने पर, syntax highlighting भी default रूप से support नहीं कीमैं इसे nano की जगह terminal editor के तौर पर इस्तेमाल कर रहा हूं
[1]: https://craigbarnes.gitlab.io/dte/
बड़े files भी काफी अच्छे से handle करता है
"winget install zyedidia.micro"से install किया जा सकता है। उसी दौर के 8-bit और 16-bit editors याद आते हैंMicrosoft जैसे बड़े संगठन में ऐसे project को approval कैसे मिलता है, यह सच में जानना चाहूंगा। क्या यह कुछ developers का side project है, या product roadmap का हिस्सा?
leadership को इस पर time लगाने के लिए कैसे convince किया होगा?
Windows में SSH Server शामिल हुए काफी समय हो गया है, इसलिए सिर्फ SSH से भी पूरी तरह manage किया जा सकता है, और ऐसे Windows admins के लिए modeless editor चाहिए था जिनके पास vi का experience नहीं है
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 नहीं होती
और यह सिर्फ मिलता-जुलता नहीं था, सचमुच वही था। EDIT.COM बस एक special flag के साथ QBASIC चलाता था, और QBASIC को उस flag के साथ सीधे भी चला सकते थे। https://news.ycombinator.com/item?id=44037509 में जैसा कहा था, मैंने मजे के लिए सच में ऐसा करके देखा था
अगर आप पूरी line lowercase में type करके enter दबाते, तो reserved words अपने-आप uppercase में बदल जाते थे। बहुत बड़ी चीज नहीं थी, लेकिन मददगार थी
copy conके दिनों के बाद आया edit सच में तारणहार थाइसमें पसंद आने वाली बहुत-सी बातें हैं। सबसे पहले, dependency list खाली है—मेरे लिए तो यही काफी है
यह बहुत अच्छी तरह काम करता है। यकीन नहीं होता कि file browser और dialogs तक वाला पूरा TUI इसी के लिए बनाया गया। मैं इसे अपने project में भी इस्तेमाल करना चाहता हूं, पर पता नहीं कितना आसान होगा। अगर project से जुड़ा कोई यहां है, तो यह भी जानना चाहूंगा कि Ratatui क्यों नहीं इस्तेमाल किया
code quality भी top-notch है, और बस एक ही बात कह सकता हूं: Bravo!
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 रूप से चालू होना बाकी है
यह कुछ ऐसा हो सकता है कि 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 तो आएंगे, ऐसा लगता है
IT support और tech support वाले आम तौर पर Linux को अच्छी तरह नहीं जानते और उसे support करना भी नहीं चाहते। WSL इस समस्या को हल करता है
अधिकांश developers खुद Linux इस्तेमाल करना नहीं चाहते। कई developers terminal का इस्तेमाल भी ठीक से नहीं जानते और GUI tools पर निर्भर रहते हैं
WSL अगर Ubuntu को support करता है, तो वह उस पहचान का फायदा उठा सकता है
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 कर सकते हैं:
varScreen: Array[1..80,1..25] Of Byte Absolute $B800; // or something like that as i recallTurbo Vision ने movable modal/non-modal windows दिए थे। मूल रूप से यह उस array को loop में लगातार rewrite करने वाली संरचना थी, और काफी तेज थी। उस library से मैंने बहुत पैसा कमाया
https://github.com/magiblot/tvision
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से बदल देंअब Unicode support वाले EDLIN का इंतजार कर रहा हूं
याद है कि batch file में standard input से keypresses pipe करके कुछ editing कामों को script किया जा सकता था। यह sed या awk की कुछ functionality की जगह लेने जैसा लगता था
मैंने करके नहीं देखा, लेकिन vi से भी संभव लगता है। वह बहुत cursed तरीका है या नहीं, यह अलग बात है
-sके साथ इस्तेमाल करेंदिलचस्प। सच कहूँ तो यह किसके इस्तेमाल के लिए बनाया गया है, यह पूरी तरह समझ नहीं आता, लेकिन दिलचस्प दिखता है
editcommand 2006 के बाद Windows में supported नहीं रहा, इसलिए उसके बाद से command line में इस्तेमाल करने लायक Microsoft का कोई editor नहीं थायह editor कितना तेज़ है, यह प्रभावित करता है। https://github.com/microsoft/edit/pull/408
अभी Helix इस्तेमाल कर रहा हूँ, लेकिन अच्छा TUI पसंद है
1993 में मैं edit से binary files खोलकर heart shapes दिखने का आनंद लिया करता था