poz*_*444 2 shell emacs ubuntu-12.04
我几乎所有东西都使用 emacs,但是当我运行 shellM-x shell然后从 emacs 退出时,历史没有保存,我(savehist-mode 1)为此尝试过但它似乎不起作用,有什么方法可以保存历史在 emacs 中使用的命令并在我在 emacs 之外使用 shell 时使用它们?
savehist-mode不适用于此处;您遇到此问题的原因是因为默认情况下,Bash 只会在其内存中的历史缓冲区已满或退出时写入历史文件,而后者仅在干净退出时才写入历史文件 - 即 Bash被杀死而不是退出的进程永远不会将最近的命令写入历史文件。
要解决此问题,请确保在终止 shell 缓冲区之前,始终通过执行logout或exit或C-d在提示符下键入来干净地完成 shell 会话;这将使 Bash 有机会在退出之前写入历史文件。
另外,请参阅有关历史文件管理的 Bash 常见问题解答,了解如何让 Bash 在每个命令执行后立即将其写入历史记录;一旦你开始工作,你就不必再担心在杀死缓冲区之前注销你的 shell,而是可以C-x k疯狂地放弃。