Он не возьмет функции в сыром виде. Их нужно обернуть в «виджет», выполнив
zle -N widgetname funcname
У них может быть одно и то же имя:
zle -N hw{,}
Затем можно сделать:
bindkey ^h hw
, заставив Ctrl + h
запустить hw
виджет, который запускает функцию hw
.
Это сделано в качестве меры предосторожности. Поскольку у них нет способа узнать или принудительно очистить все блоки от всех ОС, они предпочитают делать это вручную. Также, если вы прочитаете ответ:
В любом случае, это не имеет значения. Если то, что вы делаете, не связано с кэшированием, то запуск
sync
(или какой-то эквивалент) в любом случае не будет «неэффективным»: если нет ничего для синхронизации, это тривиальный вызов.
(курсив мой)
Я бы назвал команду sync
на всякий случай , вместо того, чтобы не вызывать ее вообще. По крайней мере, с sync
я был бы уверен, что все будет хорошо.