সংক্ষিপ্ত উত্তরটি (savehist-mode)
আপনার .emacs সক্ষম করে। এটি ডিফল্টভাবে সমস্ত মিনিবুফার ইতিহাসের রিংগুলি সংরক্ষণ করবে, যার মধ্যে / shell-command-history
দ্বারা ব্যবহৃত কোনটি অন্তর্ভুক্ত রয়েছে ।M-!
(shell-command)
আমি এটা আছি যদিও, আমি জিনিসটা আমি ব্যাখ্যা করব লোড করতে কিভাবে / থেকে কমান্ড ইতিহাস সংরক্ষণ shell-mode
অনুরোধ জানানো এবং অন্যান্য মোড থেকে আহরণ করা comint-mode
।
দ্রষ্টব্য: এটি ব্যাশ এবং ওএসএক্সের সাথে আমার সেটআপের জন্য, তবে এর সাহসগুলি বেশিরভাগ পরিবেশে কাজ করা উচিত।
প্রথমে আপনাকে আপনার বাশ শেল ইতিহাসটি আপনার ইমাসের পরিবেশে অনুলিপি করতে হবে। ডিফল্টরূপে এটি "HISTFILE" নামে একটি ভেরিয়েবলে সংরক্ষণ করা হয়। আমি এইভাবে (exec-path-from-shell)
প্যাকেজটি দিয়ে এটি করি :
(exec-path-from-shell-initialize)
(exec-path-from-shell-copy-env "HISTFILE")
তারপরে আপনাকে (turn-on-comint-history)
আপনার উপযুক্ত মোড হুকগুলিতে কল করতে হবে , অর্থাত্
(defun turn-on-comint-history (history-file)
(setq comint-input-ring-file-name history-file)
(comint-read-input-ring 'silent))
(add-hook 'shell-mode-hook
(lambda ()
(turn-on-comint-history (getenv "HISTFILE"))))
(add-hook 'inf-ruby-mode-hook
(lambda ()
(turn-on-comint-history ".pry_history")))
ইন্টারেক্টিভ রুবি মোডগুলির জন্য, আপনি দেখতে পাচ্ছেন যে আমি .pry_history
প্রতি-প্রকল্পের ভিত্তিতে একটি স্থানীয় ফাইল ব্যবহার করছি ।
তারপরে আপনাকে অবশ্যই নিশ্চিত করতে হবে যে আপনি বাফার এবং ইমাসকে হত্যা করার সময় আপনার কমেন্টের ইতিহাস ফাইলগুলি সংরক্ষণ করেছেন:
(add-hook 'kill-buffer-hook #'comint-write-input-ring)
(add-hook 'kill-emacs-hook
(lambda ()
(--each (buffer-list)
(with-current-buffer it (comint-write-input-ring)))))
দ্রষ্টব্য আমি dash.el
সংযুক্তি (--each)
বিন্যাসের জন্য ব্যবহার করছি ।
এটি আপনার মিনিবুফার শেল কমান্ডের ইতিহাসকে অবিচ্ছিন্ন করার পাশাপাশি ইমাস এবং অন্যান্য শর্তাবলীর মধ্যে আপনার বাশ প্রম্পট কমান্ডের ইতিহাসকে স্থির করে তুলবে।
(savehist-mode)
সক্ষম করেছেন?