Kısa yanıt (savehist-mode)
.emac'lerinizde etkinleştirilir . Bu, varsayılan olarak / shell-command-history
tarafından kullanılan tüm minibuffer geçmiş halkalarını kaydeder .M-!
(shell-command)
Ben varken, komut shell-mode
istemlerini istemlerden ve diğer modlardan nasıl yükleyeceğinizi / kaydedeceğimizi de anlatacağım comint-mode
.
Not: Bu, bash ve OSX ile kurulumum için, ancak bunun bağırsakları çoğu ortamda çalışmalıdır.
Önce bash kabuk geçmişinizi emacs ortamınıza kopyalamanız gerekir. Varsayılan olarak bu "HISTFILE" adlı bir değişkende saklanır. Bunu böyle (exec-path-from-shell)
paket ile yapmak :
(exec-path-from-shell-initialize)
(exec-path-from-shell-copy-env "HISTFILE")
O zaman (turn-on-comint-history)
uygun mod kancalarınızı aramalısınız , yani
(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")))
Etkileşimli yakut modları için, .pry_history
proje başına yerel bir dosya kullandığımı görebilirsiniz .
Ardından, arabellekleri ve emac'ları öldürürken comint geçmişi dosyalarınızı kaydettiğinizden emin olmanız gerekir:
(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)))))
Not dash.el
Özlü (--each)
biçimlendirme için kullanıyorum .
Bu, minibuffer kabuk komut geçmişinizin yanı sıra emacs ve diğer terimler arasındaki bash istemi komut geçmişinizi kalıcı hale getirecektir.
(savehist-mode)
etkin?