Fasd: Не работает под полночным командиром

Созданный на 22 сент. 2014  ·  6Комментарии  ·  Источник: clvv/fasd

Я попытался вернуться в оболочку из mc (используя co), а затем fasd:

$ z 32
fasd:4: unknown file attribute: _

Самый полезный комментарий

Я решаю это переопределением _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?

Все 6 Комментарий

Я столкнулся с той же проблемой. По какой-то причине в терминале 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. Приятно иметь исправление.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

pearofducks picture pearofducks  ·  7Комментарии

rendybjunior picture rendybjunior  ·  14Комментарии

ghost picture ghost  ·  12Комментарии

sypl picture sypl  ·  12Комментарии

ixil picture ixil  ·  5Комментарии