Я использую emacs почти для всего, но когда я запускаю shell M-x shell
и затем выхожу из emacs, история не сохраняется, я попытался (savehist-mode 1)
для этой цели, но, похоже, не работает, есть ли Любой способ сохранить историю команд, используемых в Emacs и использовать их, когда я использую оболочку вне Emacs?
1 ответ
savehist-mode
здесь не применим; причина, по которой у вас возникла эта проблема, заключается в том, что Bash по умолчанию записывает данные в файл истории только тогда, когда его буфер истории в памяти заполнен или находится на выходе, а последний - только если он выходит чисто - то есть Bash процесс, который убит, а не завершит работу, никогда не будет записывать последние команды в файл истории.
Чтобы обойти эту проблему, убедитесь, что вы всегда аккуратно завершаете сеанс оболочки, выполняя logout
или exit
или вводя C-d
в командной строке, прежде чем уничтожать буферы оболочки; это даст Bash возможность написать файл истории перед выходом.
Также смотрите Bash FAQ по управлению файлами истории, чтобы узнать, как заставить Bash записывать каждую команду в историю, как только она выполняется; как только вы заработали эту работу, вам больше не нужно беспокоиться о выходе из своих оболочек, прежде чем вы убьете их буферы, но можете C-x k
с дикой энергией.