बेसिक प्रोजेक्ट मैनेजमेंट के लिए DeskTop का उपयोग करना


12

मैं बेसिक प्रोजेक्ट मैनेजमेंट के लिए डेस्कटॉप का उपयोग करना चाहूंगा , अर्थात बफ़र्स का एक सेट खोलना और जिस प्रोजेक्ट पर मैं काम कर रहा हूं, उसके आधार पर इतिहास को पुनर्स्थापित करना। क्या यह संभव है, अर्थात् एक प्रोजेक्ट डायरेक्टरी में एक डेस्कटॉप फ़ाइल है और मैं इसे कैसे प्राप्त कर सकता हूं?

जवाबों:


13

मुझे आपकी तरह डेस्कटॉप फ़ाइलों का प्रबंधन करने की आवश्यकता थी; प्रत्येक प्रोजेक्ट के लिए एक अलग डेस्कटॉप फ़ाइल है और प्रत्येक के लिए स्वतंत्र रूप से बफ़र्स, इमैक वैरिएबल आदि को बचाएं।

मैं उस पैकेज को प्राप्त करने में सक्षम था जिसे कहा जाता है bookmark+

बुकमार्क +

लाइब्रेरी बुकमार्क + विभिन्न प्रकार के बुकमार्क का प्रबंधन करता है, उनमें से एक डेस्कटॉप बुकमार्क है

पैकेज स्थापित करने के बाद,

  • आपको (require 'bookmark+)अपने में होना चाहिएinit.el
  • प्रत्येक प्रोजेक्ट के लिए एक बुकमार्क बनाने के लिए, बफ़र सेट करें जिसे आप प्रत्येक प्रोजेक्ट के लिए चाहते हैं और करते हैं M-x bmkp-set-desktop-bookmarkया करते हैं C-x p K। यह आपसे पूछेगा कि आप डेस्कटॉप फ़ाइल को कहाँ सहेजना चाहते हैं और आप इसे उस प्रोजेक्ट के फ़ोल्डर में सहेजना चुन सकते हैं।
  • एक बार जब आप सभी प्रोजेक्ट्स के लिए डेस्कटॉप बुकमार्क सेट कर लेते हैं, तो आप उपयोग करके M-x bmkp-desktop-jumpया अलग-अलग बुकमार्क पर जा सकते हैं C-x j K

बुकमार्क + Emacs विकी पर डॉक बहुत जानकारीपूर्ण यदि आप इस पैकेज के बारे में अधिक जानने के लिए चाहते हैं।

desktop.el

उसके अलावा, मेरे पास desktopपैकेज सेट करने के लिए निम्नलिखित है जहां मैं वह चुन सकता हूं जो मैं प्रति डेस्कटॉप पर सहेजना चाहता हूं

(desktop-save-mode 1)

;; Source: https://github.com/purcell/emacs.d/blob/master/lisp/init-sessions.el
; save a bunch of variables to the desktop file
;; for lists specify the len of the maximal saved data also
(setq desktop-globals-to-save
      (append '((comint-input-ring . 50)
                (compile-history . 30)
                desktop-missing-file-warning
                (dired-regexp-history . 20)
                (extended-command-history . 30)
                (face-name-history . 20)
                (file-name-history . 100)
                (grep-find-history . 30)
                (grep-history . 30)
                (ido-buffer-history . 100)
                (ido-last-directory-list . 100)
                (ido-work-directory-list . 100)
                (ido-work-file-list . 100)
                (magit-read-rev-history . 50)
                (minibuffer-history . 50)
                (org-clock-history . 50)
                (org-refile-history . 50)
                (org-tags-history . 50)
                (query-replace-history . 60)
                (read-expression-history . 60)
                (regexp-history . 60)
                (regexp-search-ring . 20)
                register-alist
                (search-ring . 20)
                (shell-command-history . 50)
                tags-file-name
                tags-table-list)))

Emacs छोड़ने पर प्रोजेक्ट-विशिष्ट डेस्कटॉप को सहेजना

मुझे नीचे दिए गए फ़ंक्शन को बांधने के लिए उपयोगी लगता है C-x C-cताकि जब मैं emacs छोड़ दूं तो डेस्कटॉप स्वचालित रूप से सहेज लिया जाए।

(defun save-desktop-save-buffers-kill-emacs ()
  "Save buffers and current desktop every time when quitting emacs."
  (interactive)
  (desktop-save-in-desktop-dir)
  (save-buffers-kill-emacs))

कई बार, मैं emacs छोड़ने पर डेस्कटॉप को सहेजना नहीं चाहता। उन अवसरों के लिए, मैं इस अन्य फ़ंक्शन का उपयोग करता हूं और इसके लिए बाध्य हूं C-x M-c

;; Kill emacs when running in daemon mode or not
;; Source: http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00348.html
(defun tv-stop-emacs ()
  (interactive)
  (if (daemonp)
      (save-buffers-kill-emacs)
    (save-buffers-kill-terminal)))

धन्यवाद - जो बहुत अच्छा लग रहा है। मुझे पहले बुकमार्क + और डेस्कटॉप का संयोजन मिला था, लेकिन इसे करने का संक्षिप्त तरीका नहीं मिला। यह बहुत अच्छा लग रहा है। मैं इसे नवीनतम सोमवार की कोशिश करता हूँ!
रेनर

1
ध्यान दें कि, वेनिला एमएसीएस डेस्कटॉप कमांड के लिए मामले के विपरीत, बुकमार्क + डेस्कटॉप बुकमार्क कई डेस्कटॉप के बीच स्विच करने के लिए अभिप्रेत हैं। IOW, आपके पास कई डेस्कटॉप फाइलें हो सकती हैं। और आपकी डेस्कटॉप फाइलें कहीं भी हो सकती हैं। उन्हें अलग-अलग निर्देशिकाओं में नहीं होना चाहिए। वेनिला डेस्कटॉप उपयोग यह मानता है कि आपके पास प्रति निर्देशिका केवल एक डेस्कटॉप फ़ाइल है।
ड्रू

@kaushalmodi साभार - शानदार और अब मेरे पास बुकमार्क + के बारे में पढ़ने के लिए बहुत कुछ है - लेकिन यह बिल्कुल वैसा ही चाहता है जैसा मैं चाहता हूं।
रेनर

@ यह वही है जो मैं देख रहा था - और यह एक आकर्षण की तरह काम करता है।
रेनर

@kaushalmodi मुझे लगता है कि आप अपने एक्ज़िट फ़ंक्शन का उपयोग डेस्कटॉप को सहेजे बिना emacs छोड़ने में सक्षम होने के लिए कर रहे हैं - या क्या कोई अंतर है, जब डेस्कटॉप को हमेशा सहेजने के लिए, desktop-eve`` if-if-new`` चर का उपयोग करने के लिए `?
रेनर

0

मैं संबंधित परियोजनाओं के स्थानीय निर्देशिका से डेस्कटॉप फ़ाइल को सहेजने और लोड करने / पढ़ने के लिए निम्न सेटअप का उपयोग करता हूं:

 (require 'desktop)
 (setq desktop-path (list "./"))
 (desktop-save-mode 1)
 (desktop-read)

यह परियोजनाओं को स्विच करने जैसे मुद्दों के बिना नहीं है, उदाहरण के लिए, प्रोजेक्टाइल या अन्य परियोजना प्रबंधन उपयोगिताओं को किसी भी डेस्कटॉप फ़ाइलों को लोड नहीं करता है, लेकिन मैं projectile-after-switch-project-hookफ़ंक्शन का उपयोग निजी फ़ंक्शन को ज़रूरतमंद करने के लिए कॉल कर सकता हूं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.