2012-06-29 11 views
14

वर्कस्पेस द्वारा, मेरा मतलब है - मुझे अपने खुले बफर की स्थिति को सहेजने की ज़रूरत है (संभवतः उपयोगकर्ता निर्दिष्ट वर्कस्पेस फ़ाइल में) और जल्दी से खुले बफर के दूसरे सेट पर स्विच करें, उदा। किसी अन्य परियोजना से संबंधित फाइलों पर काम करना जारी रखने के लिए।सर्वश्रेष्ठ Emacs वर्कस्पेस प्लगइन क्या है?

क्या कोई Emacs प्लगइन है जो इसे अनुमति देता है? तुम किसकी सिफारिश करना चाहोगे?

उत्तर

10

मैं save-visited-files और workgroups के संयोजन का उपयोग । असल में, वर्क ग्रुप शायद आप जो कुछ भी चाहते हैं वह करेंगे।

मेरे config:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;;; workgroups for windows 

(setq wg-prefix-key (kbd "C-c z") 
     wg-no-confirm t 
     wg-file (concat emacs-persistence-directory "workgroups") 
     wg-use-faces nil 
     wg-switch-on-load nil) 

(defun wg-load-default() 
    "Run `wg-load' on `wg-file'." 
    (interactive) 
    (wg-load wg-file)) 

(defun wg-save-default() 
    "Run `wg-save' on `wg-file'." 
    (interactive) 
    (when wg-list 
    (with-temp-message "" 
     (wg-save wg-file)))) 

(with-library 'workgroups 
    (define-key wg-map (kbd "C-l") 'wg-load-default) 
    (define-key wg-map (kbd "C-s") 'wg-save-default) 
    (workgroups-mode 1) 
    (add-hook 'auto-save-hook 'wg-save-default) 
    (add-hook 'kill-emacs-hook 'wg-save-default)) 
+2

मैं एक और कार्यसमूह में स्विच करना चाहता हूं, पुराने कार्यसमूह से जुड़े सभी बफर बंद कर दूंगा और नए लोगों को खोलने के बजाय नए खोलें। – axel22

+1

'वर्क ग्रुप' में बफर के सेट के बीच उचित स्विचिंग नहीं है, और लोडिंग/बचत एक दर्द है। मैं जवाब की सराहना करता हूं, लेकिन मुझे नहीं लगता कि यह एक अच्छा समाधान है। – axel22

+0

मैं सहमत हूं कि पुनर्स्थापित करना (wg-restore-workgroup) और अद्यतन (wg-update-workgroup) दर्द हो सकता है, क्योंकि इसे अनुशासन की आवश्यकता होती है। आप इसे स्वचालित करने के लिए कुछ हुक बना सकते हैं, लेकिन यह वास्तव में कुछ ऐसा होना चाहिए जो बनाया गया हो। लोड हो रहा है और सहेजना आसानी से स्वचालित हो सकता है, उदा। जैसा कि मैंने किया था ऑटो-सेव-हुक के साथ। मैंने बहुत पहले खुले बफर के बारे में देखभाल करना बंद कर दिया था। मैं उनमें से कुछ को हर कुछ दिनों में साफ़ करता हूं, और ido मोड स्विचिंग को आसान बनाता है। मेरे पास 91 बफर अभी खुले हैं। – jpkotta

2

डेस्कटॉप.ल आपकी स्थिति में सहायक होगा।

Emacs संकुल बफर से

यह (इसकी शुरूआत पेज से नकल) कर सकते हैं:

सहेजें डेस्कटॉप, जैसे कि, - कुछ वैश्विक चर - साथ संबद्ध फ़ाइलें बफ़र्स की सूची। प्रमुख मोड - - डिफ़ॉल्ट निर्देशिका - बिंदु - भी एक बफर के लिए निशान & मार्क-सक्रिय - बफर-रीड-ओनली - कुछ स्थानीय चर

+1

मैं कई डेस्कटॉप फाइलों के साथ प्रयास नहीं किया है, यह काम करता है? मैंने सोचा कि यह इमाक्स रीस्टार्ट में राज्य को बचाने के लिए और अधिक था, जो यह बहुत अच्छा करता है। – tripleee

+0

हां यह कर सकता है: हम किसी दिए गए निर्देशिका ('डेस्कटॉप-सेव-इन-डायरेक्टरी') में डेस्कटॉप फ़ाइल को सहेज सकते हैं, और इसे वापस पढ़ सकते हैं (' डेस्कटॉप-रीड 'के लिए तर्क के साथ)। – Ehvince

2

आप लिनक्स/Gnome3 उपयोग कर रहे हैं, तो आप इस विस्तार की कोशिश कर सकते हैं: https://extensions.gnome.org/extension/361/emacs-manager/ इस विस्तार आप एक साथ कई Emacs डेमॉन के प्रबंधन के द्वारा विभिन्न परियोजनाओं पर काम करने की अनुमति देगा, और बचाने/बफर की स्थिति बहाल करें।

5

व्यक्तिगत रूप से, मैं `persp-mode' उपयोग कर रहे हैं: Emacs के लिए

परिप्रेक्ष्य, नाथन Weizenbaum द्वारा perspective-el पर आधारित है। लेकिन दृष्टिकोणों के बीच साझा किए गए दृष्टिकोण + फ़ाइल से/सहेजने/पुनर्स्थापित करने की क्षमता।

2

HIROSE Yuuji के revive.el ने काफी समय से मेरे लिए अच्छी तरह से काम किया है। मैं revive.el में टिप्पणियों में प्रस्तुत मानक विन्यास का उपयोग करता हूं। दस्तावेज़ीकरण अच्छी तरह लिखा है और पुनर्जीवित करना बहुत आसान है और कॉन्फ़िगर करना है। विशेष रूप से, revive.el को कुछ अधिक जटिल हैं जो कॉन्फ़िगरेशन को पुनर्जीवित करने के लिए कुछ से बेहतर समर्थन है। यह विशेष रूप से अच्छा है अगर आप इसे हिरोस यूयूजी के windows.el के साथ जोड़ते हैं। वे एक साथ काम करने के लिए बने होते हैं। windows.el खिड़की के विभाजन को याद करना संभव बनाता है, आदि revive.el विशेष सेटअप के लिए गहरे मोड एकीकरण की ओर विस्तारशीलता की ओर एक आंख के साथ बनाया गया है। लेकिन मेरे उपयोग के लिए, मुझे यह बॉक्स से काफी अच्छा लगता है, हालांकि मुझे लगता है कि मैं इसे w3m विंडोज़ को पुनर्जीवित करने के लिए अगली बार ले जाऊंगा जो कि वर्तमान में मेरे पास सेटअप नहीं है (अपडेट: मैं अब करता हूं: नीचे देखें)।

यहां मेरी पुनरुद्धार कॉन्फ़िगरेशन है।

(provide 'my-revive-config) 

(require 'windows) ; use this with revive so that window splits are recallable 
        ; too 

(win:startup-with-window) ; start with window 1 


;;;[Key Bindings] 
;;; 
;;; The default prefix key stroke for Windows is `C-c C-w'. If it 
;;; causes you some troubles, see the section `Customizations'. 
;;; Here are the default key bindings. 
;;; 
;;;  C-c C-w 1  Switch to window 1 (Q) 
;;;  C-c C-w 2  Switch to window 2 (Q) 
;;;  : 
;;;  C-c C-w 9  Switch to window 9 (Q) 
;;;  C-c C-w 0  Swap windows with the buffer 0 (Q) 
;;;     (Select unallocated frame(Emacs 19)) 
;;;  C-c C-w SPC  Switch to window previously shown (Q) 
;;;  C-c C-w C-n  Switch to next window 
;;;  C-c C-w C-p  Switch to previous window 
;;;  C-c C-w !  Delete current window (Q) 
;;;  C-c C-w C-w  Window operation menu 
;;;  C-c C-w C-r  Resume menu 
;;;  C-c C-w C-l  Local resume menu 
;;;  C-c C-w C-s  Switch task 
;;;  C-c C-w =  Show window list (Q) 
;;; 
;;; The key strokes to select windows from 1 to 9 must be 
;;; frequently used, so the alternative key strokes `C-c [Num.]' are 
;;; available by default (And any function with (Q)mark can be 
;;; invoked without C-w). To disable these quick key strokes, set 
;;; the variable win:quick-selection to `nil' in your ~/.emacs. 

(autoload 'save-current-configuration "revive" "Save status" t) 
(autoload 'resume "revive" "Resume Emacs" t) 
(autoload 'wipe "revive" "Wipe Emacs" t) 

(define-key ctl-x-map "S" 'save-current-configuration) 
(define-key ctl-x-map "F" 'resume) 
(define-key ctl-x-map "K" 'wipe) 

;;; 
;;;[How to use] 
;;; 
;;; Call `save-current-configuration' (`C-x S' if you define key as 
;;; above) when you want to save current editing status and call 
;;; `resume' to restore it. Numerical prefix arg to them specifies 
;;; the buffer number in which the editing status will be saved. 
;;; Here the buffer refers to a revive s-exp in ~/.revive.el of 
;;; which there can be n 
;;; 
;;;  [Sample Operations] 
;;;  C-u 2 C-x S  ;save status into the buffer #2 
;;;  C-u 3 C-x F  ;load status from the buffer #3 

इस के वेरिएंट कि revive-plus.el दूसरों की तरह है और एक slightly modified clone on github, लेकिन मैं मूल पसंद करते हैं: मैं कुछ उपयोगी टिप्पणी, windows.el के लिए पहली और फिर revive.el इनलाइन शामिल हैं।

सोमवार, 12 जनवरी, 2015 अपडेट करें: अब मैं पुन: प्रयास में w3m को पुनर्स्थापित कर सकता हूं (पुन: प्रयास करें।जानकारी के लिए और में उदाहरण पर विशेष नजर में एल डॉक्स को पुनर्जीवित: प्रमुख-मोड-आदेश-alist-डिफ़ॉल्ट):

(setq revive:major-mode-command-alist-private 
     '(("*w3m*" . w3m))) 

सूचना आप w3m बफर के नाम को पुनर्जीवित कह रहे हैं। यहां तक ​​कि यदि आपके पास एकाधिक टैब हैं, तो केवल पहले की आवश्यकता को ऊपर के रूप में समझा जाना चाहिए।

यहाँ है w3m चर मैं पिछले सत्र से सभी टैब पुनर्स्थापित करना निर्धारित किया है:

(setq w3m-session-load-last-sessions t) 
संबंधित मुद्दे