Как я могу (из скрипта) добавить что-то в историю команд zsh? - PullRequest
3 голосов
/ 12 мая 2010

Я хотел бы иметь возможность просматривать историю команд и знать контекст, из которого я выполнял различные команды, - другими словами, «в каком каталоге я находился?» Я мог достичь этого различными способами, но все они (о которых я могу подумать) потребовали бы манипулирования историей zsh, чтобы добавить (например) строку с комментариями с результатом $ (pwd). (Я мог бы создать функции с именем cd & pushd & popd и т. Д., Или я мог бы использовать функцию zexe preexec () и, возможно, ее функцию period () для добавления строки комментария не чаще, чем каждые X секунд, непосредственно перед тем, как выполнить команду, или, возможно, есть каким-то другим способом.)

Проблема в том, что я не хочу напрямую манипулировать файлом истории и обходить механизм истории оболочки, но я не могу найти способ (например, с помощью команды fc) добавить что-либо в историю без фактически набрав его в командной строке. Как я мог это сделать?

1 Ответ

3 голосов
/ 12 мая 2010

Вы можете использовать команду print -s (см. man zshbuiltins), чтобы добавить все, что вы хотите в историю. Есть также функция ловушки, которую вы можете создать с именем zshaddhistory (см. man zshmisc), которая может манипулировать содержимым истории по мере их создания.

См. мои функции регистрации истории Bash для вдохновения.

...