2

Я использую emacs почти для всего, но когда я запускаю shell M-x shell и затем выхожу из emacs, история не сохраняется, я попытался (savehist-mode 1) для этой цели, но, похоже, не работает, есть ли Любой способ сохранить историю команд, используемых в Emacs и использовать их, когда я использую оболочку вне Emacs?

1 ответ1

5

savehist-mode здесь не применим; причина, по которой у вас возникла эта проблема, заключается в том, что Bash по умолчанию записывает данные в файл истории только тогда, когда его буфер истории в памяти заполнен или находится на выходе, а последний - только если он выходит чисто - то есть Bash процесс, который убит, а не завершит работу, никогда не будет записывать последние команды в файл истории.

Чтобы обойти эту проблему, убедитесь, что вы всегда аккуратно завершаете сеанс оболочки, выполняя logout или exit или вводя C-d в командной строке, прежде чем уничтожать буферы оболочки; это даст Bash возможность написать файл истории перед выходом.

Также смотрите Bash FAQ по управлению файлами истории, чтобы узнать, как заставить Bash записывать каждую команду в историю, как только она выполняется; как только вы заработали эту работу, вам больше не нужно беспокоиться о выходе из своих оболочек, прежде чем вы убьете их буферы, но можете C-x k с дикой энергией.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .