ইমাসস: শুরুতে শেষ সেশন থেকে বাফারগুলি আবার খুলুন?


91

প্রতিদিন আমি ইমাস শুরু করি এবং আগের দিন ঠিক একই ফাইলগুলি খোলাম। আমি init.el ফাইলটিতে এমন কিছু যুক্ত করতে পারি যাতে আমি শেষবার ইমাস ছাড়ার সময় আমি যে সমস্ত বাফার ব্যবহার করছিলাম তা পুনরায় খুলবে?


দেখে মনে হচ্ছে যে ডেস্কটপ হ্যান্ডলিং ইমাস 21 এবং 22+ এর চেয়ে আলাদা। বিষয়টি এই পৃষ্ঠায় বর্ণিত হয়েছে: emacswiki.org/emacs/DeskTop
এইচজি

ডেস্কটপ হ্যান্ডলিং ডিফল্ট পাথের আরেকটি পরিবর্তন এসেছে 24.3। github.com/jwiegley/emacs-release/blob/…
পেস্টোফ্যাগসাস

উত্তর:


118

আপনি ইমাস ডেস্কটপ লাইব্রেরি ব্যবহার করতে পারেন :

Mx ডেস্কটপ-সেভ কমান্ডটি দিয়ে আপনি ডেস্কটপটি ম্যানুয়ালি সংরক্ষণ করতে পারেন। আপনি যখন ইমাসগুলি থেকে প্রস্থান করবেন তখন ডেস্কটপের স্বয়ংক্রিয় সংরক্ষণ এবং ইম্যাকস শুরু হওয়ার পরে সর্বশেষ সংরক্ষিত ডেস্কটপের স্বয়ংক্রিয় পুনরুদ্ধার সক্ষম করতে পারবেন: ভবিষ্যতের সেশনের জন্য ডেস্কটপ-সেভ-মোড সেট করতে কাস্টমাইজেশন বাফারটি (সহজ কাস্টমাইজেশন দেখুন) ব্যবহার করুন, বা যুক্ত করুন আপনার ~ / .emacs ফাইলটিতে এই লাইনটি:

 (desktop-save-mode 1)

4
দুর্দান্ত উত্তর। যাইহোক, আমি লক্ষ্য করেছি যে ইমাসস সেশনগুলির মধ্যে বাফার অর্ডারটিকে পুনরায় সাজিয়েছে। সর্বদা একই বাফার অর্ডার করার কোনও উপায় আছে কি?
axel22

কারও যদি এটির কাজ করতে সমস্যা হয় (যেমন আমি করেছিলাম) তবে সমস্যাটি নির্ণয়ের জন্য এখানে একটি কৌশল রয়েছে: M-:সম্পাদন করে ডিবাগিং চালু করুন (setq debug-on-error t), তারপরে কল করুন desktop-revertএবং এটি ডিবাগারে আপত্তিজনক ত্রুটিটি পেতে পারে। আমার জন্য এটি বৈশ্বিক সেটিং যা ফ্রেমের পুনরুদ্ধার ব্যর্থ হওয়ার কারণে স্থানীয় স্থানীয় বাফার হওয়ার কথা ছিল। (কেবল ব্যবহারের emacs --debug-initফলে সমস্যাটিও ধরা পড়বে, তবে আমি পূর্বের পদ্ধতিটি ব্যবহার করেছি))
রোবেনক্লেন

10

যদিও আমি সন্দেহ করি যে প্রশ্নটি ইমাসের "ডেস্কটপ" কার্যকারিতাটি খুঁজছিল (উপরের উত্তরটি দেখুন), তবে যে ফাইলগুলি ব্যবহার করে সেগুলির সেট একই ফাইলের সেট যদি হয় তবে লিপ্পের দৃষ্টিভঙ্গি কার্যকর হতে পারে। আসলে, যদি কেউ নিয়মিত ব্যবহৃত ফাইলগুলির বিভিন্ন সেট থাকে ... দ্রুত উদাহরণ:

(let ((profile 
       (read-from-minibuffer "Choose a profile (acad,dist,lisp,comp,rpg): ")
       ))
  (cond
   ((string-match "acad" profile) 
    (dired "/home/thomp/acad")
    (dired "/home/thomp/acad/papers")
    )
   ((string-match "lisp" profile)
    (setup-slime)
    (lisp-miscellany)
    (open-lisp-dirs)
    )
   ((string-match "rpg" profile)
    (find-file "/home/thomp/comp/lisp/rp-geneval/README")
    (dired "/home/thomp/comp/lisp/rp-geneval/rp-geneval")
... etc.

আপনাকে খুঁজে যা আপনি নিয়মিত, নিয়মিত ব্যবহৃত ফাইল আপনি কাজ যেমন বিভিন্ন সেট মধ্যে আগে পিছে সুইচ ব্যবহারের বিষয়ে বিবেচনা যদি দৃষ্টিকোণ এবং নিয়মিত ব্যবহৃত ফাইল পছন্দসই সেট সঙ্গে প্রতিটি দৃষ্টিকোণ পূর্ণ।


6

বাফার / ট্যাবগুলি সংরক্ষণ করার / পুনরুদ্ধার করার জন্য (বিশেষত এলসস্ক্রিন ট্যাবগুলি): আমি ডেস্কটপ সেশনটি সংরক্ষণ এবং পুনরুদ্ধার করার পদ্ধতিটি esccreen ব্যবহার করি এবং এলসি স্ক্রিন ট্যাব কনফিগারেশনটি আমার .emacs ফাইলে নিম্নলিখিত কোড (ব্যবহৃত নামগুলি স্ব-বর্ণনামূলক) হয় এবং যদি স্ট্যামিং / পুনরুদ্ধার ফাংশনগুলি প্রতিবার সম্পাদন করা উচিত না যদি ইমাস শুরু হয় কেবল "(পুশ # 'এলসি স্ক্রিন-স্টোর কিল-ইমাস-হুক)" এবং "(এলস স্ক্রিন-রিস্টোর)") দিয়ে লাইনগুলি মন্তব্য করুন:

(defvar emacs-configuration-directory
    "~/.emacs.d/"
    "The directory where the emacs configuration files are stored.")

(defvar elscreen-tab-configuration-store-filename
    (concat emacs-configuration-directory ".elscreen")
    "The file where the elscreen tab configuration is stored.")

(defun elscreen-store ()
    "Store the elscreen tab configuration."
    (interactive)
    (if (desktop-save emacs-configuration-directory)
        (with-temp-file elscreen-tab-configuration-store-filename
            (insert (prin1-to-string (elscreen-get-screen-to-name-alist))))))
(push #'elscreen-store kill-emacs-hook)
(defun elscreen-restore ()
    "Restore the elscreen tab configuration."
    (interactive)
    (if (desktop-read)
        (let ((screens (reverse
                        (read
                         (with-temp-buffer
                          (insert-file-contents elscreen-tab-configuration-store-filename)
                          (buffer-string))))))
            (while screens
                (setq screen (car (car screens)))
                (setq buffers (split-string (cdr (car screens)) ":"))
                (if (eq screen 0)
                    (switch-to-buffer (car buffers))
                    (elscreen-find-and-goto-by-buffer (car buffers) t t))
                (while (cdr buffers)
                    (switch-to-buffer-other-window (car (cdr buffers)))
                    (setq buffers (cdr buffers)))
                (setq screens (cdr screens))))))
(elscreen-restore)

যে কেউ এই পথে যাচ্ছেন তার জন্য, কেবলমাত্র একটি সামান্য পয়েন্ট যা আপনি ইমাক্স ইতিমধ্যে সরবরাহ emacs-configuration-directoryকরেছেন তার সাথে প্রতিস্থাপন করতে পারেন user-emacs-directory
জো

2

বেসিক ডেস্কটপ বৈশিষ্ট্যে আপনি করতে পারেন এমন দরকারী বর্ধন রয়েছে। বিশেষভাবে হ্যান্ডি (আইএমও) হ'ল অধিবেশন চলাকালীন ডেস্কটপটিকে অটো-সেভ করার পদ্ধতি, অন্যথায় যদি আপনার সিস্টেমটি ক্র্যাশ হয়ে যায় তবে আপনি যে ডেস্কটপ ফাইলটি দিয়ে সেই অধিবেশনটি শুরু করেছিলেন তাতে আটকে যাবেন - যদি আপনি অনেকের জন্য ইমাক চালিয়ে যেতে চান তবে বেশ বিরক্তিকর ing একসাথে দিন

http://www.emacswiki.org/emacs/DeskTop

উইকিতে সাধারণভাবে সেশনের মধ্যে থাকা অব্যাহত ডেটা সম্পর্কেও দরকারী তথ্য রয়েছে:

http://www.emacswiki.org/emacs/ সেশন ম্যানেজমেন্ট

বিশেষত ডেস্কটপগুলির জন্য, আমি ভেবেছিলাম যে ডেস্কটপ পুনরুদ্ধারটি বিশেষত আশাব্যঞ্জক বলে মনে হচ্ছে , তবে আমি এখনও এটি চেষ্টা করে দেখিনি।


-2

(find-file-noselect "/my/file")এটি নিঃশব্দে খুলবে, অর্থাৎ ডাব্লু / ও বাফার উত্থাপন। এমনি বলছি.

সম্পাদনা করুন এই আদেশটি ইন্টারেক্টিভ নয় ; এটি পরীক্ষা করার জন্য আপনাকে এক্সপ্রেশনটি মূল্যায়ন করতে হবে, উদাহরণস্বরূপ, শেষ বন্ধনীর পরে কার্সারটি স্থাপন করে এবং সিএক্স সি তে আঘাত করে

ডাউনভোটিং এটি দুর্দান্ত নয় ; এই কমান্ডটি অবশ্যই কাজ করে এবং প্রশ্নের ক্ষেত্রের মধ্যে রয়েছে।


4
আমি ডাউনটিভোট করিনি, তবে সম্ভবত আপনার উত্তরটি নিম্নচোট করা হয়েছে কারণ এটি পূর্ববর্তী ইমাস সেশনে খোলা খোলা বাফারগুলিকে কীভাবে বিশেষভাবে খুলতে হবে সেই সমস্যাটির সমাধান করে না।
রায়ান সি থম্পসন

4
ডাউনভোটেড কারণ এটির মূল
প্রশ্নটির
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.