2009-01-18 11 views
23

नोटपैड ताकि जब आप Windows Explorer में कर रहे हैं, तो आप एक फ़ाइल पर राइट-क्लिक करें और "नोटपैड के साथ संपादित ++" कर सकते हैं स्वचालित रूप से एक खोल शॉर्टकट कहते हैं ++। मैं emacs के साथ ऐसा कैसे कर सकता हूँ? मैं विंडोज के लिए जीएनयू Emacs 22.3 का उपयोग कर रहा हूँ।कैसे एक राइट क्लिक संदर्भ खोल शॉर्टकट "Emacs के साथ संपादित करें" बनाने के लिए?

+0

एक कुंजीपटल-भारी संपादक लॉन्च करने के लिए एक (मुख्य रूप से) माउस संचालित दृष्टिकोण चाहते हुए अजीब लगता है! क्या आप सिर्फ कंसोल का उपयोग नहीं करते हैं? –

+2

बिलकुल नहीं। अच्छी उत्पादकता सही ढंग से कीबोर्ड और माउस मिश्रण से आता है। विंडोज एक्सप्लोरर से Emacs लॉन्च करने में सक्षम होने के नाते कई लोगों के लिए उपयोगी है। – LRMAAX

उत्तर

28

यहाँ मैं क्या है है। एक नया पाठ फ़ाइल कहीं बुलाया Emacs-conextmenu.reg बनाएँ (या कुछ भी-यू-want.reg) और पेस्ट में निम्नलिखित:

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\*\shell] 
[HKEY_CLASSES_ROOT\*\shell\openwemacs] 
@="&Edit with Emacs" 
[HKEY_CLASSES_ROOT\*\shell\openwemacs\command] 
@="Absolute\\Path\\to\\your\\emacs\\bin\\emacsclientw.exe -n \"%1\"" 
[HKEY_CLASSES_ROOT\Directory\shell\openwemacs] 
@="Edit &with Emacs" 
[HKEY_CLASSES_ROOT\Directory\shell\openwemacs\command] 
@="Absolute\\Path\\to\\your\\emacs\\bin\\emacsclientw.exe -n \"%1\"" 

बदलें अपनी Emacs स्थापना पथ के लिए पथ; "\" (जब भी आपके पास \, कि के लिए \\ बदल) से बचने के लिए याद है।

अब आपको केवल इतना करना है कि एक्सप्लोरर में इस * .reg फ़ाइल को डबल-क्लिक करें और आपके पास किसी भी फ़ाइल और किसी भी निर्देशिका के लिए emacs के लिए संदर्भ मेनू प्रविष्टि होगी (यदि आप एक थके हुए प्रशंसक हैं!)।

ध्यान दें कि इसके लिए काम करने के लिए, emacs शुरू करना होगा और emacs-server को भी प्रारंभ करना होगा (एम-एक्स सर्वर-स्टार्ट)। मैं विंडोज़ के साथ emacs शुरू करने और अपने .emacs फ़ाइल में डाल (सर्वर शुरू) सुझाव देना होगा।

बोनस के रूप में, ऑटोहोटीकी के लिए निम्न स्निपेट (http://www.autohotkey.com/) जब आप विंडोज एक्सप्लोरर में ctrl-shift-enter दबाते हैं तो emacs में चुनी गई फ़ाइल शुरू हो जाएगी। यदि आप Emacs में बहुत सी फाइलें संपादित करते हैं तो यह अधिक आसान हो सकता है लेकिन यह आवश्यक रूप से emacs में फ़ाइल पर नेविगेट करना नहीं चाहता है। http://ourcomments.org/Emacs/EmacsW32.html

इसके संस्थापक जो आप क्या चाहते हैं करता है एक एक्सप्लोरर मेनू प्रविष्टि बनाता है:

#IfWinActive ahk_class CabinetWClass 
^+Enter:: 
    GetText(tmpvar) 
    If (tmpvar != "") 
    Run, d:/path/to/your/emacs/bin/dir/emacsclientw.exe -n "%tmpvar%" 
Return 
Return 
+3

आप% 1 को% 1 से प्रतिस्थापित करना चाहते हैं, अन्यथा विंडोज़ फ़ाइल के संक्षिप्त नाम के साथ Emacs की आपूर्ति करेगा। यह प्रश्न देखें: http://stackoverflow.com/questions/892934/emacsw32-renames-buffers-with-old-windows-shortened-file-names – Leonel

+0

शानदार उत्तर! हालांकि, क्या कुछ Emacs विशेषज्ञ आगे भी जा सकते हैं और दिखा सकते हैं कि Emacs..in में .reg फ़ाइल को सभी को बनाने और निष्पादित करने के तरीके को कैसे emacs के पूर्ण पथ को शामिल किया जा सकता है? मैं अभी भी एक नौसिखिया हूँ, लेकिन मुझे यकीन है कि एक Emacs समर्थक यह वास्तव में आसान बना सकता है।क्या मैंने कहा कि मुझे इमाक्स कितना पसंद है? – User1

+0

भी उल्लेख आप एक रिबूट की जरूरत है या रोक/पुनः आरंभ explorer.exe सकता है यहाँ http://www.pctools.com/forum/showthread.php?38853-apply-registry-without-reboot-computer – joefromct

2

This site कैसे अन्य ऐप्लिकेशन के साथ यह करने के लिए बताते हैं। बस पथ बदलें और आपको पूरा सेट होना चाहिए।

[HKEY_CLASSES_ROOT\*\shell\Edit with AppName\command] 
@=”\”C:\\Program Files\\Notepad2\\Notepad2.exe\” \”%1\”" 

यहाँ another reference है, जो एक छोटे से पालन करने के लिए आसान है:

इस कुंजी/मान बनाएँ।

5

आप रजिस्ट्री spelunking के लिए नहीं कर रहे हैं, तो आप इस Windows Explorer से (निर्देश किसी भी संपादक ही नहीं, Emacs के लिए) कर सकते हैं:

  1. ओपन विंडोज एक्सप्लोरर और Tools\Folder Options... मेनू का चयन करें आइटम।

  2. File Types टैब पर क्लिक करें और उस फ़ाइल के प्रकार के लिए एक्सटेंशन का चयन करें जिसे आप अपने संपादक से जोड़ना चाहते हैं। इस उदाहरण के लिए, मैं TXT एक्सटेंशन का उपयोग करूंगा।

  3. Edit File Type संवाद लाने के लिए विवरण फ्रेम में Advanced बटन पर क्लिक करें।

  4. आप या तो वर्तमान open कार्रवाई को बदल सकते हैं, या Open with MyEditor की तरह किसी नए कार्य को निर्दिष्ट करें।

    यदि आप संपादित करना चुनते हैं, तो Edit... बटन पर क्लिक करें और Application used to peform action टेक्स्टबॉक्स में, अपने संपादक को पूरा पथ दें, उसके बाद "%1" पर जाएं। उदाहरण के लिए, C:\SciTe\wscite\SciTE.exe "%1" लिए।

    यदि आप कोई नई कार्रवाई करना चाहते हैं, तो New... बटन पर क्लिक करें, कार्रवाई को एक नाम दें, और अपने संपादक को पूरा पथ दें, इसके बाद "%1" पर जाएं।

  5. यदि आप उस फ़ाइल प्रकार के लिए डिफ़ॉल्ट कार्रवाई करना चाहते हैं, तो कार्रवाई का चयन करें, फिर Set Default बटन पर क्लिक करें।

  6. सभी संवादों से बाहर OK

एक अन्य विकल्प अपने Send To फ़ोल्डर, %USERSPROFILE%\SendTo में अपने संपादक के निष्पादन के लिए एक शॉर्टकट डाल करने के लिए किया जाएगा। मैं आम तौर पर यहाँ बुलाया "संपादकों" में एक नया फ़ोल्डर बनाने और विभिन्न संपादकों मैं उपयोग करने के लिए शॉर्टकट डाल दिया। कुछ अन्य जवाब देने के लिए इसी तरह की -

2

विंडोज एकीकरण के साथ एक Emacs वितरण की जाँच करें।

2

यहां एक ही काम करने का एक और तरीका है। WinXP और Vista में काम करता है। अपने Emacs बिन निर्देशिका में

संपादित-साथ-emacs.reg

Windows Registry Editor Version 5.00 
[HKEY_CLASSES_ROOT\*\shell\Emacs] 
@="Edit With &Emacs" 
[HKEY_CLASSES_ROOT\*\shell\Emacs\command] 
@="Wscript.exe C:\\emacs\\emacs-22.3\\bin\\launch-emacs-client.vbs \"%1\"" 

प्लेस इस फाइल:

अपने registery को यह जोड़े

लांच-Emacs-ग्राहक। vbs

Set objShell = WScript.CreateObject("WScript.Shell") 
Set fso = CreateObject("Scripting.FileSystemObject") 

If WScript.Arguments.Count = 1 Then 

    strComputer = "." 

    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 

    Set colItems = objWMIService.ExecQuery("Select * From Win32_Process") 

    Dim isRunning 
    isRunning = False 

    For Each objItem in colItems 
    If InStr(objItem.CommandLine, "emacs.exe") Then 
     isRunning = True 
    End If 
    Next 

    If isRunning Then 
    objShell.Run(fso.GetParentFolderName(WScript.ScriptFullName) & "/emacsclientw.exe -n """ & WScript.Arguments(0) & """") 
    Else 
    objShell.Run(fso.GetParentFolderName(WScript.ScriptFullName) & "/runemacs.exe """ & WScript.Arguments(0) & """") 
    End If 

Else 
    objShell.Run(fso.GetParentFolderName(WScript.ScriptFullName) & "/runemacs.exe") 
End If 

नोट: W32 installer स्थापना पर एक समान स्क्रिप्ट चलाता है।

1

मैं ऊपर पॉलीग्लॉट के उत्तर में जोड़ना चाहता हूं - ऑटोहॉटकी शॉर्टकट का उल्लेख है कि वह बहुत आसान है, लेकिन कोड अधूरा है: GetText() फ़ंक्शन किसी अन्य व्यक्ति द्वारा ऑटोहॉटकी फ़ोरम (http://www.autohotkey.com/forum/viewtopic.php?p=279576#279576) पर लिखा गया था, और यह है:

GetText(ByRef MyText = "") 
{ 
    SavedClip := ClipboardAll 
    Clipboard = 
    Send ^c 
    ClipWait 0.1 
    If ERRORLEVEL 
    { 
     Clipboard := SavedClip 
     MyText = 
     ERRORLEVEL := 1 
     Return 
    } 
    MyText := Clipboard 
    Clipboard := SavedClip 
    Return MyText 
} 

;to test: 
#k:: 
GetText(FileName) 
msgbox clipboard=%FileName% 
return 

ध्यान दें कि क्लिपवाइट देरी को संशोधित करने की आवश्यकता हो सकती है: मुझे इसे 2 पर सेट करना पड़ा!

13

पॉलीग्लोट के उत्तर की तरह, लेकिन किसी सर्वर या उस गड़बड़ी को शुरू करने की आवश्यकता नहीं है।

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\*\shell] 
[HKEY_CLASSES_ROOT\*\shell\openwemacs] 
@="&Edit with Emacs" 
[HKEY_CLASSES_ROOT\*\shell\openwemacs\command] 
@="C:\\Program Files (x86)\\Emacs\\bin\\emacsclientw.exe --alternate-editor=\"C:\\Program Files (x86)\\Emacs\\bin\\runemacs.exe\" -n \"%1\"" 
[HKEY_CLASSES_ROOT\Directory\shell\openwemacs] 
@="Edit &with Emacs" 
[HKEY_CLASSES_ROOT\Directory\shell\openwemacs\command] 
@="C:\\Program Files (x86)\\Emacs\\bin\\emacsclientw.exe --alternate-editor=\"C:\\Program Files (x86)\\Emacs\\bin\\runemacs.exe\" -n \"%1\"" 
+1

आप लाइन '" आइकन "=" सी: \\ प्रोग्राम फ़ाइलें (x86) \\ Emacs \\ bin \\ emacsclientw.exe "जोड़कर आइकन को भी निर्दिष्ट कर सकते हैं" '=" के साथ लाइन के नीचे और संपादित करें Emacs "' – LRMAAX

4

थोड़ा अतिरिक्त के साथ, पृष्ठभूमि पर क्लिक करके Emacs में वर्तमान निर्देशिका को खोलना भी संभव हो जाता है।

<<<Code as posted by polyglot>>> 

[HKEY_CLASSES_ROOT\Directory\Background\shell\openwemacs] 
@="Open &with Emacs" 
[HKEY_CLASSES_ROOT\Directory\Background\shell\openwemacs\command] 
@="C:\\Program Files\\emacs-24.2\\bin\\runemacs.exe \"%V\"" 

यहां %V वर्तमान निर्देशिका है। %1 का उपयोग इस मामले में काम नहीं करता है।

संबंधित मुद्दे