windows - Emacs में उपनाम बनाएँ?




elisp (5)

मेरे पास emacs की एक प्रति है जो मैं एक अंगूठे ड्राइव से कुछ अलग (विंडोज़) कंप्यूटरों पर उपयोग करता हूं, और मैं सोच रहा हूं कि क्या ऐसा कुछ बनाना संभव है जो कि एशैक्स के भीतर एक बास उपनाम या सिमुलिक के बराबर है? कुछ चीज़ जिसे मैं फाई-फाईल में इस्तेमाल कर सकता हूं वह मुख्य चीज है जिसे मैं तलाश रहा हूं, उदाहरण के लिए: Cf <some link> मुझे कहीं ले जाएगा वर्तमान में मुझे हर बार एक नया कंप्यूटर जोड़ना होगा, जो एक नया कंप्यूटर है, जो कि सिर्फ एक दर्द है और मैं कसम खाता हूँ कि मैंने इसे कहीं देखा है, लेकिन गुगल के महीनों में कुछ नहीं हुआ है।

मैं अभी क्या मिल गया है जैसे कुछ है:

(defun go-awesome ()
   "Find my way to my work home"
   (interactive)
   (find-file "c:/cygwin/home/awesome"))

लेकिन ऐसा लगता है कि मैं सिर्फ एक फ़ाइल का दौरा करने के लिए काफी हंसी का दौरा करने के लिए तेजी से और अतिरेक हूं जो कि मैं सेमी-नियमित रूप से जाता हूं और इसके लिए एक नई फ़ाइल सेट करने के लिए बहुत प्रयास की आवश्यकता है

इसके साथ सबसे बड़ी समस्या हालांकि, मेरी राय में यह मेरे कार्यप्रवाह में फिट नहीं है जब मैं एक फ़ाइल का दौरा करना चाहता हूं तो मैं हमेशा Cx Cf करता हूं, और अगर मुझे पता है कि "अरे मैं काम पर हूं" तो मुझे Cg Mx go-awesome शायद यह और अधिक स्पष्ट होगा अगर मैंने कहा कि मैं कुछ ऐसा करने में सक्षम होना चाहता हूं जो कि ln -s /some/awesome/dir के बराबर है, लेकिन ओएएस में निर्मित होने की बजाय ईएमएसीएस के लिए आंतरिक है, ताकि Cx Cf ~/awesome/some/sub/dir खिड़कियों या कहीं और पर काम करेंगे।


मैं वास्तव में आप के लिए क्या पूछ रहे हैं पर स्पष्ट नहीं कर रहा हूँ। मैं मेरे .emacs में रजिस्टरों में मेरी सामान्यतः उपयोग की जाने वाली फ़ाइलों को संग्रहीत करता हूं:

(set-register ?c '(file . "c:/data/common.txt"))
(set-register ?f '(file . "c:/data/frequent.txt"))

तब मैं एक फ़ाइल में jump-to-register ( Cx rj ) के साथ jump-to-register सकता हूं:

उदाहरण के लिए, " Cx rjc " मुझे c:/data/common.txt ले जाता है (इसे लोड करने की आवश्यकता है)।

क्या आप जो देख रहे हैं?


अगर आप एक समारोह में एक उपनाम चाहते हैं, तो आप defalias उपयोग defalias :

(defalias 'nuke 'delete-trailing-whitespace)

लेकिन अगर आप शिकायत कर रहे हैं कि Emacs के फ़ंक्शन के नाम बहुत लंबा हैं, तो आपको partial-completion-mode में देखना चाहिए। इसके साथ,

M-x d-t-w [RET]

delete-trailing-whitespace चलाएगा


मैंने इसे मूल प्रश्न में ले लिया, लेकिन मैं इसे यहाँ छोड़ रहा हूं क्योंकि लोगों ने इससे पहले ही इसका जवाब दिया था

मेरे पास जो मिला है उसके मुकाबले यह बेहतर है, लेकिन मुझे लगता है कि संभवतः ऐसा लगता है कि वह जगह होगी, उदाहरण के लिए:

(defun nuke ()
   "alias delete-trailing-whitespace"
   (interactive)
   (delete-trailing-whitespace))

और कम हंसी महसूस करते हैं, और वास्तव में यह वास्तव में कर रहा था जो वास्तव में ऐसा करना चाहिए था, वास्तव में जो कुछ वास्तव में प्रकाश होना चाहिए जैसा लगता है के लिए वास्तव में भारी कुछ करने की बजाय।

क्या इसका कोई मतलब है?

रजिस्टरों को आपके आवंटित वास्तव में मैं जो देख रहा हूं उससे बेहतर हो सकता है, यद्यपि।


मेरे पास यह सेटअप नीचे है इसलिए उदाहरण के लिए, अगर मैं अपने डेस्कटॉप (डी: / डेस्कटॉप) पर एक फ़ाइल ढूंढना चाहता हूं, तो मैं टाइप करें एफ 3 जे एफ 3, और कोई भी रास्ता नहीं जिस पर मैंने शुरू किया, अब मिनीबफर कहता है "डी: \ डेस्कटॉप \" और मैं ' डेस्कटॉप पर कोई भी फ़ाइल नाम टाइप करने के लिए मी तैयार हूँ मैंने जम्मू, कश्मीर, एल, इब / सी के लिए अपना शॉर्टकट सेट किया है, जहां मेरे बाएं हाथ के करीब हैं, लेकिन इस सेटअप के साथ, 4 अक्षरों तक के किसी भी शॉर्टकट काम करेगा। तो आप अपनी "अजीब" फाइल के लिए एक प्रविष्टि जोड़ सकते हैं, "भय" कह सकते हैं, और आप अपनी फाइल देखने के लिए एफ 3 वेल एफ 3 दर्ज कर सकते हैं। पता नहीं कि यह वही है जो आप चाहते हैं; लेकिन यह मुझे बहुत से टाइपिंग बचाता है;)

(global-set-key [f3] 'ffap)

;comcplete shortcut in minibuffer
(define-key minibuffer-local-completion-map (kbd "<f3>")
                      'complete-minibuffer-path) 

(defun complete-minibuffer-path ()
  "Extension to the complete word facility of the minibuffer by
replacing matching strings to a specific path"
  (interactive)
  (setq found t)
  (cond
     ; just add new entries if needed; shortcut up to 4 letters will work
     ((looking-back "j" 5 nil) (setq directory "D:/Desktop/"))
     ((looking-back "k" 5 nil) (setq directory "D:/Documents/"))
     ((looking-back "l" 5 nil) (setq directory home-dir))
     ((looking-back "i" 5 nil) (setq directory "D:/Programs/"))
     (t (setq found nil)))
  (cond (found (beginning-of-line)
                (kill-line)
                (insert directory))
         (t (minibuffer-complete)))) 

यहां आपको क्या चाहिए -

  • उन बुकमार्कों को परिभाषित करें जो उन संदर्भों के अनुरूप होते हैं जिन्हें आप फिर से देखना चाहते हैं बुकमार्क के साथ + यह सिर्फ एक फाइल नहीं है यह संपूर्ण एमएसीएस डेस्कटॉप या एक बकाया बफर भी हो सकता है, जो इसके चिह्नों (सहेजे गए), अन्य बुकमार्क्स का एक सेट, ...

  • बुकमार्क्स के साथ Icicles का उपयोग करें + जब भी आप किसी फाइल को देखने के लिए सीएक्स सीएफ आदि का उपयोग करते हैं, तो आप एक फ़ाइल या निर्देशिका बुकमार्क (बुकमार्क नाम के विरुद्ध) को भी देख सकते हैं। जब आप फ़ाइल-नाम पूर्ण होने के लिए मिनीबफर में हैं, तो बस सीएक्स एम हिट करें।





elisp