मुझे आपकी तरह डेस्कटॉप फ़ाइलों का प्रबंधन करने की आवश्यकता थी; प्रत्येक प्रोजेक्ट के लिए एक अलग डेस्कटॉप फ़ाइल है और प्रत्येक के लिए स्वतंत्र रूप से बफ़र्स, इमैक वैरिएबल आदि को बचाएं।
मैं उस पैकेज को प्राप्त करने में सक्षम था जिसे कहा जाता है 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)))