Есть ли рыбный эквивалент для Precmd (zsh) / PROMPT_COMMAND (bash)?
Я ищу способ хранить более полную историю с путем, датой и командой в отдельном файле журнала.
Это можно сделать разными способами. Приглашение Fish - это фрагмент кода в функции с именем fish_prompt
. Вы можете изменить его с помощью funced fish_prompt
а затем сохранить эти изменения на диск с помощью funcsave fish_prompt
(это сохранит его в ~ / .config / fish / functions / fish_prompt.fish, который вы также можете изменить напрямую. если вы так выберете).
В противном случае есть событие fish_prompt
которое будет запущено непосредственно перед подсказкой. Вы можете написать для него слушателя, например
function dostuff --on-event fish_prompt
# do your stuff
end
Обратите внимание, что это не может быть сохранено в каталоге функций, так как они загружаются автоматически. Сохраните его в config.fish, файле, который он получает, или (в следующем выпуске Fish) ~ / .config / fish / conf.d (в файле, заканчивающемся на «.fish»).
Также есть события fish_preexec
и fish_postexec
которые будут запускаться непосредственно перед / после задания соответственно.
@gawells , это ответ на ваш вопрос?
Да, спасибо
Самый полезный комментарий
Это можно сделать разными способами. Приглашение Fish - это фрагмент кода в функции с именем
fish_prompt
. Вы можете изменить его с помощьюfunced fish_prompt
а затем сохранить эти изменения на диск с помощьюfuncsave fish_prompt
(это сохранит его в ~ / .config / fish / functions / fish_prompt.fish, который вы также можете изменить напрямую. если вы так выберете).В противном случае есть событие
fish_prompt
которое будет запущено непосредственно перед подсказкой. Вы можете написать для него слушателя, напримерОбратите внимание, что это не может быть сохранено в каталоге функций, так как они загружаются автоматически. Сохраните его в config.fish, файле, который он получает, или (в следующем выпуске Fish) ~ / .config / fish / conf.d (в файле, заканчивающемся на «.fish»).
Также есть события
fish_preexec
иfish_postexec
которые будут запускаться непосредственно перед / после задания соответственно.