IDEmacs: Emacs को Visual Studio Code की तरह इस्तेमाल करने के लिए एक configuration set
(codeberg.org)- Emacs environment को mainstream IDE की तरह configure करने के लिए बनाया गया settings collection, ताकि शुरुआती उपयोगकर्ता भी इसे तुरंत इस्तेमाल कर सकें
- VSCode theme, explorer, tabs, multi-cursor, auto-completion जैसी प्रमुख सुविधाओं को Emacs में फिर से बनाया गया है
- GUI और mouse interaction का default support मिलता है, और
custominterface से settings बदली जा सकती हैं - Lisp (Sly/Geiser) developers और non-programmers दोनों के लिए पूरा editing environment प्रदान करता है
- Emacs की मौजूदा entry barrier को कम करके नए users के लिए आसानी से अपनाने लायक starting point देता है
IDEmacs परिचय
- IDEmacs एक configuration set है जो Emacs को Visual Studio Code या Sublime Text जैसे GUI IDE की तरह इस्तेमाल करने लायक बनाता है
- Emacs की ताकतवर क्षमताओं को बरकरार रखते हुए शुरुआती उपयोगकर्ताओं के लिए परिचित interface देता है
- इसके मुख्य target users निम्न तीन समूह हैं
- दूसरे IDE से आने वाले programmer या coding पहली बार सीखने वाले उपयोगकर्ता
- Common Lisp और Scheme के शुरुआती उपयोगकर्ता (Sly/Geiser, structural editing features सहित)
- Org, Markdown, LaTeX document editing चाहने वाले non-programmers
- इसका उद्देश्य Emacs के default experience से अपरिचित उपयोगकर्ताओं को तुरंत इस्तेमाल करने योग्य environment देकर entry barrier कम करना है
मुख्य विशेषताएँ
- GUI और mouse support
- अधिकांश starter kits के विपरीत यह GUI elements को छिपाता नहीं है
customGUI के जरिए configuration support देता है (सीधे Elisp edit करने की जरूरत नहीं)
- IDE-style keybindings
- CUA mode के आधार पर VSCode आदि में इस्तेमाल होने वाले shortcuts को बड़े पैमाने पर फिर से बनाया गया है
Evilmode इस्तेमाल करने वाले Spacemacs, Doom के विपरीत यह GUI-केंद्रित interaction पर जोर देता है
- पूर्ण Emacs distribution-स्तर की configuration
- तेज़ और setup-free environment
- भरपूर comments वाले Elisp code से बना है, इसलिए learning material की तरह भी उपयोगी है
- इसका target level पूरी तरह समान न होकर “काफी हद तक मिलता-जुलता” अनुभव देना है
VSCode configuration (प्रगति पर)
- फिलहाल उपलब्ध एकमात्र IDE configuration
- शामिल तत्व
- VSCode Dark Plus theme
- Treemacs sidebar file explorer
- Centaur Tabs tab bar
- breadcrumb file path display
- idle-highlight-mode symbol auto-highlighting
- VSCode के “General”, “Basic Editing”, “Rich Languages Editing”, “Multi-cursor” shortcuts का अधिकांश implementation
- मुख्य packages
- editing:
whole-line-or-region,expand-region,multiple-cursors,smartparens - version control:
vc,magit,diff-hl,blamer - auto-completion:
Vertico,orderless,Consult,marginalia,company - Lisp development:
sly,geiser,adjust-parens - अन्य:
eat(terminal),org-superstar,pdf-tools,undo-tree,helpful,rainbow-mode - code organization
use-packageसे manage की जाती है
- editing:
Keybinding configuration
- VSCode shortcuts को Emacs commands से map किया गया है
- उदाहरण:
C-S-p→ command palette (execute-extended-command)C-p→ file open (consult-locate)C-S-n→ new window (make-frame)C-w→ window close (idemacs-kill-buffer-noprompt)C-,→ user settings (customize)
- उदाहरण:
- basic editing, multi-cursor, navigation, file management, display control आदि विस्तृत श्रेणियों के अनुसार संबंधित commands परिभाषित हैं
- कुछ shortcuts का व्यवहार VSCode से अलग है, और उन्हें TODO के रूप में चिह्नित किया गया है
भागीदारी और योगदान का अनुरोध
- उपयोगकर्ताओं से IDEmacs इस्तेमाल करने के बाद feedback देने का अनुरोध
- शुरुआती उपयोगकर्ताओं को observe करना, और Jabber/XMPP या issue tracker के जरिए राय साझा करना
- developers को code improvement और feature expansion में भाग लेने के लिए प्रोत्साहित किया गया है
संबंधित project
- Mousemacs (GitHub: seamus-brady/mousemacs)
- Emacs को Sublime Text या VSCode की तरह काम करने वाला distribution
- Lisp सीखने के लिए बनाया गया, और mouse-friendly interface देता है
- साधारण theme के साथ Emacs की सभी सुविधाएँ बरकरार रखता है
Install और run करने का तरीका
- आवश्यक dependencies
- Emacs 29 या बाद का संस्करण,
git, DejaVu Sans Mono font
- Emacs 29 या बाद का संस्करण,
- वैकल्पिक dependencies
grep,locateयाplocate
- installation steps
- repository clone करें
git clone https://codeberg.org/IDEmacs/IDEmacs - internet connection की स्थिति में Emacs चलाएँ
emacs --init-directory=/path/to/IDEmacs/vscode
- run करते समय आवश्यक Emacs packages अपने आप download हो जाते हैं
- repository clone करें
अन्य
- फिलहाल VSCode configuration के अलावा कोई अन्य IDE style उपलब्ध नहीं है
- भविष्य में resources उपलब्ध होने पर नए GUI implementation की संभावना का उल्लेख है
- मूल पाठ में अतिरिक्त जानकारी नहीं है
1 टिप्पणियां
Hacker News राय
जो लोग VSCode को आसान समझते हैं, उन्हें थोड़ा रियलिटी चेक चाहिए
पहली बार चलाने पर पॉपअप, साइडबार, टूलटिप वगैरह से दबाव-सा महसूस होता है
मैं भी Emacs उपयोगकर्ता हूँ, लेकिन यह दावा नहीं करता कि Emacs सहज है
बस VSCode भी कोई जादुई रूप से आसान टूल नहीं है, वह केवल लोकप्रिय विकल्प है
फ़ाइल ट्री, एडिटर, टर्मिनल, टैब कम्प्लीशन, एक्सटेंशन इंस्टॉल — ज़्यादातर उपयोगकर्ताओं की इंटरैक्शन यहीं तक रहती है
जो चीज़ें डिफ़ॉल्ट में न मिलें या एक्सटेंशन से आसानी से न जुड़ें, उनका ज़्यादातर लोग उपयोग नहीं करते
लेकिन VSCode की जटिलता vim या Emacs के स्तर की नहीं है
एक छोटा ट्यूटोरियल या लगभग 30 मिनट हाथ लगाने से काफ़ी सहज हुआ जा सकता है
जबकि neovim के लिए तो जैसे पूरी एक किताब चाहिए थी
हाल में RustRover आज़माया, लेकिन सिर्फ़ क्लिक करके मनचाही सेटिंग बनाना मुश्किल था
इससे लगा कि IDE की ‘आसानी’ शायद जितनी दिखती है, उतनी वास्तविक नहीं होती
बहुत-से टूल standard file chooser या CUA shortcuts जैसे सामान्य इंटरफ़ेस सपोर्ट करते हैं
इसलिए Emacs की जगह Zim-wiki जैसे विकल्प इस्तेमाल करके मैं ज़्यादा संतुष्ट हूँ
लेकिन अगर कोई tmux, vi, nano, emacs-केंद्रित वर्कफ़्लो से आया हो, तो वह चौंक सकता है
Emacs सिर्फ़ एक साधारण IDE नहीं, बल्कि दर्शन और स्वतंत्रता वाला टूल है
प्रोग्रामिंग-केंद्रित उपयोग मामलों पर ध्यान देने वाले कई प्रोजेक्ट हैं, लेकिन VSCode में भी Emacs keybindings के साथ लगभग 75% तक काम किया जा सकता है
Emacs का सार यह है कि वह आपको “पुर्ज़ों का डिब्बा” देता है और आप खुद उसे जोड़ते हैं
यह कुछ-कुछ “सभ्य युग का एक सुंदर हथियार” जैसा है
इसके अधिकांश data structures mutable हैं, और
setqजैसे कई imperative functions मौजूद हैंयह संदेह है कि Emacs में fixed window layout वास्तव में अच्छी तरह काम करता भी है या नहीं
पहले जब मैंने कोशिश की थी, Treemacs panel कभी-कभी file viewer की जगह code buffer दिखाने लगता था
हाल के समय में Emacs को IDE की तरह सेट करना पहले से बहुत आसान हो गया है
built-in eglot की वजह से पहले की तुलना में elisp code बहुत कम लिखना पड़ता है, और Python setup तो एक लाइन में हो जाता है
इसलिए ऐसे प्रोजेक्ट मेरे जैसे पुराने उपयोगकर्ताओं से ज़्यादा नए लोगों के लिए gateway जैसे हैं
OCaml REPL, 68000 emulator, gdb integration तक बिना बड़े setup के संभव था
बाद में remote server environment की वजह से vim पर चला गया, लेकिन हाल में फिर Emacs आज़माया तो package management बहुत अधिक परिष्कृत लगा
हालाँकि DevOps/SRE से जुड़ी tooling अभी भी कमज़ोर है
Spacemacs, Doom जैसी package bundle projects मुझे पसंद हैं
मैं खुद इन्हें इस्तेमाल नहीं करता, लेकिन ये नए packages खोजने का मौका देती हैं और config फिर से छेड़ने का बहाना भी बनाती हैं
नाम बहुत साधारण है, लेकिन उद्देश्य पर बिल्कुल सटीक बैठता है, इसलिए मुस्कान आ गई
काश Emacs के UI को आधुनिक रूप में rebuild करने वाला कोई प्रोजेक्ट होता
कोर वैसा ही रहे, लेकिन इंटरफ़ेस में visual distinction ज़्यादा साफ़ हो और आँखों पर कम ज़ोर पड़े
पुराने Lisp-आधारित editors की तरह Ctrl दबाने पर shortcut hints दिखें, तो वह भी अच्छा होगा
UI ठीक-ठाक है, और single-threaded structure तथा बार-बार रुक जाने की समस्या ज़्यादा तात्कालिक मुद्दा है
रोज़ कम-से-कम एक बार
C-gदबाने की नौबत सुधरनी चाहिएयह curses/SDL2 के ऊपर चलता है और Emacs शैली को आगे बढ़ाता है
पहले यह external package था, लेकिन हाल में Emacs core में शामिल कर लिया गया
संबंधित commit लिंक
graphical environment हो या terminal, दोनों में एक जैसा दिखना इसकी बड़ी ताकत है
Treemacs का हर जगह एक जैसा दिखना मुझे ख़ास तौर पर पसंद है
यह अफ़सोस की बात है कि OniVim v2 सफल नहीं हो पाया
यह native IDE था और VSCode plugin system को पूरी तरह सपोर्ट करता था
OniVim v2 आर्काइव लिंक
यह दूसरे GUI frontend developers के लिए भी उपयोगी हो सकता था
Neovim RPC के ज़रिए संवाद करता है, लेकिन performance काफ़ी तेज़ है
VSCode के लिए Neovim plugin भी इसी architecture की वजह से पूरा vim अनुभव दे पाता है
Vim उपयोगकर्ता Electron-आधारित input lag और EULA से नाखुश होते, और VSCode उपयोगकर्ताओं की Vim में रुचि ही नहीं होती
25 साल से ज़्यादा समय से Emacs इस्तेमाल कर रहा हूँ, और नई installation पर सबसे पहले GUI elements को disable करता हूँ
menu या toolbar का बिल्कुल उपयोग नहीं करता
लेकिन मेरे supervisor basic Emacs को mouse से इस्तेमाल करके LaTeX काम करते थे, और वह काफ़ी ताज़गीभरा अनुभव था
मैं Doom Emacs का उपयोग जारी रखूँगा, लेकिन ऐसी कोशिशें अच्छी लगती हैं
Emacs में Vertico जैसे नवोन्मेषी UI plugins बहुत हैं, लेकिन default experience अभी भी कमज़ोर है
अगर ऐसे प्रोजेक्ट Emacs को ज़्यादा लोगों के लिए सुलभ बनाते हैं, तो यह अच्छी बात है
15 साल से ज़्यादा समय से Emacs इस्तेमाल कर रहा हूँ, और मेरी एकमात्र इच्छा है कि VSCode की तरह remote editing वाला client-server mode मिले
अच्छा होगा अगर high-latency environment में भी ठीक से चलने वाला कोई समाधान हो
नहीं मिला तो खुद बनाने का सोचूँगा
फिर भी VSCode का Python integration काफ़ी अच्छा है
-nw) में चलाएँ