Я попытался вернуться в оболочку из mc (используя co), а затем fasd:
$ z 32
fasd:4: unknown file attribute: _
Я столкнулся с той же проблемой. По какой-то причине в терминале MC определена функция fasd(). Я не знаю, как оно туда попало.
% which fasd
fasd () {
pwd 7 kill -STOP precmd_functions+=(_mc_precmd)
}
Удаление функции устраняет проблему:
% unset -f fasd
% which fasd
/usr/bin/fasd
% z tmp <tab>
/tmp /home/fcelda/tmp
Кажется, что хук _fasd_preexec
конфликтует с хуком _mc_precmd
. Я смог найти обходной путь.
Это текущий хук fasd:
% which _fasd_preexec
_fasd_preexec () {
{
eval "fasd --proc $(fasd --sanitize $1)"
} >> "/dev/null" 2>&1
}
А это крючок МС:
% which _mc_precmd
_mc_precmd () {
pwd >&7
kill -STOP $$
}
Я заставил это работать, исключив отладку в _fasd_preexec
:
% which _fasd_preexec
_fasd_preexec () {
fasd --proc "$(fasd --sanitize "$1")"
}
Я не уверен, как правильно решить эту проблему. Замена фигурных скобок на круглые скобки также сработала, но я не уверен, что желательно запускать подоболочку.
Только что столкнулся с такой же проблемой. Безуспешно пытался переопределить _fasd_preexec
.
Я решаю это переопределением _fasd_preexec(). С уважением @fcelda
в вашем .zshrc
if ps $PPID |grep -q mc; then
_fasd_preexec () {
fasd --proc "$(fasd --sanitize "$1")"
}
endif
Также вы можете частично исправить это, если переопределите fasd_cd
с полным путем к исполняемому файлу fasd
. Таким образом, у вас будет нарушена только функция fasd. И все ваши псевдонимы вроде z
, zz
будут работать.
PS Нужна ли нам эта информация в README.md?
@ezh Я думаю, было бы неплохо иметь это в ReadMe .
эта ошибка приветствует меня на каждой возможной платформе, поэтому я начал избегать завершения. это должно быть добавлено в Readme. Приятно иметь исправление.
Самый полезный комментарий
Я решаю это переопределением _fasd_preexec(). С уважением @fcelda
в вашем .zshrc
Также вы можете частично исправить это, если переопределите
fasd_cd
с полным путем к исполняемому файлуfasd
. Таким образом, у вас будет нарушена только функция fasd. И все ваши псевдонимы вродеz
,zz
будут работать.PS Нужна ли нам эта информация в README.md?