বেসিক প্রকল্প পরিচালনার জন্য ডেস্কটপ ব্যবহার করা


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)))

ইমাস ছাড়ার সময় প্রকল্প-নির্দিষ্ট ডেস্কটপগুলি সংরক্ষণ করা

আমি নীচের ফাংশনটি C-x C-cএমনভাবে বাঁধতে দরকারী বলে মনে করি যাতে আমি ইমাস ছেড়ে গেলে ডেস্কটপগুলি স্বয়ংক্রিয়ভাবে সংরক্ষণ হয়।

(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))

কখনও কখনও, ইমাস ছাড়ার সময় আমি ডেস্কটপটি সংরক্ষণ করতে চাই না। এই অনুষ্ঠানের জন্য, আমি এই অন্যান্য ফাংশনটি ব্যবহার করি এবং এটির সাথে আবদ্ধ 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, আপনার একাধিক ডেস্কটপ ফাইল থাকতে পারে। এবং আপনার ডেস্কটপ ফাইলগুলি যে কোনও জায়গায় থাকতে পারে। তারা বিভিন্ন ডিরেক্টরি হতে হবে না। ভ্যানিলা ডেস্কটপ ব্যবহার অনুমান করে যে আপনার প্রতি ডিরেক্টরিতে কেবল একটি ডেস্কটপ ফাইল রয়েছে।
ড্র করুন

ধন্যবাদ_কৌসলমোদি ধন্যবাদ - উজ্জ্বল। এবং এখন বুকমার্ক + সম্পর্কে আমার অনেক কিছু পড়ার আছে - তবে এটি ঠিক আমার চাই চাই না।
রাইনার

@ ড্রয় এটি হ'ল আমি যা খুঁজছিলাম - এবং এটি একটি কবজির মতো কাজ করে।
রাইনার

@ কৈশালমোদি আমি ধরে নিয়েছি যে আপনি ডায়ালটিকটি সংরক্ষণ না করেই ইমাস ছাড়তে সক্ষম হয়ে আপনার প্রস্থান ফাংশনটি ব্যবহার করছেন - বা always desktop-eve`জিজ্ঞাসা- if-new`` এর ভেরিয়েবলটি ব্যবহার করার ক্ষেত্রে ডেস্কটপকে সর্বদা সংরক্ষণ করতে চাইলে কোনও তফাত হয়? `?
রেনার

0

আমি সংশ্লিষ্ট প্রকল্পগুলির স্থানীয় ডিরেক্টরি থেকে ডেস্কটপ ফাইলটি সংরক্ষণ এবং লোড / পড়ার জন্য নিম্নলিখিত সেটআপটি ব্যবহার করার প্রবণতা রাখি:

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

উদাহরণস্বরূপ, প্রজেক্টাইল বা অন্যান্য প্রকল্প পরিচালনার ইউটিলিটিগুলি কোনও ডেস্কটপ ফাইল লোড করে না তবে এটির projectile-after-switch-project-hookপ্রয়োজনে প্রাইভেট ফাংশনটি কল করার জন্য আমি এই ফাংশনটি কাজে লাগাতে পারি issues

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