Fasd: Ne fonctionne pas sous le commandant de minuit

Créé le 22 sept. 2014  ·  6Commentaires  ·  Source: clvv/fasd

J'ai essayé de revenir dans le shell depuis mc (en utilisant co) puis fasd :

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

Commentaire le plus utile

Je résous ce problème avec la redéfinition _fasd_preexec(). Cordialement @fcelda

dans votre .zshrc

if ps $PPID |grep -q mc; then
    _fasd_preexec () {
        fasd --proc "$(fasd --sanitize "$1")"
    }
endif

Vous pouvez également le corriger partiellement si vous redéfinissez fasd_cd avec le chemin complet vers l'exécutable fasd . Ainsi, vous n'aurez que la fonction fasd cassée. Et tous vos alias comme z , zz fonctionneront.

PS Avons-nous besoin de cette information dans README.md ?

Tous les 6 commentaires

J'ai rencontré le même problème. Pour une raison quelconque, il existe une fonction fasd() définie dans le terminal MC. Je ne sais pas comment c'est arrivé là.

% which fasd
fasd () {
    pwd 7 kill -STOP precmd_functions+=(_mc_precmd)
}

La suppression de la fonction résout le problème :

% unset -f fasd
% which fasd
/usr/bin/fasd
% z tmp <tab>
/tmp  /home/fcelda/tmp

Il semble que le crochet _fasd_preexec en conflit avec le crochet _mc_precmd . J'ai pu trouver une solution de contournement.

Voici le crochet fasd actuel :

% which _fasd_preexec 
_fasd_preexec () {
    {
        eval "fasd --proc $(fasd --sanitize $1)"
    } >> "/dev/null" 2>&1
}

Et voici le crochet MC :

% which _mc_precmd 
_mc_precmd () {
    pwd >&7
    kill -STOP $$
}

Je l'ai fait fonctionner en éliminant le débogage dans _fasd_preexec :

% which _fasd_preexec
_fasd_preexec () {
    fasd --proc "$(fasd --sanitize "$1")"
}

Je ne sais pas comment résoudre ce problème correctement. Le remplacement des accolades par des parenthèses a également fonctionné, mais je ne sais pas si l'exécution d'un sous-shell est souhaitée.

Je viens de rencontrer le même problème. J'ai essayé de redéfinir _fasd_preexec sans succès.

Je résous ce problème avec la redéfinition _fasd_preexec(). Cordialement @fcelda

dans votre .zshrc

if ps $PPID |grep -q mc; then
    _fasd_preexec () {
        fasd --proc "$(fasd --sanitize "$1")"
    }
endif

Vous pouvez également le corriger partiellement si vous redéfinissez fasd_cd avec le chemin complet vers l'exécutable fasd . Ainsi, vous n'aurez que la fonction fasd cassée. Et tous vos alias comme z , zz fonctionneront.

PS Avons-nous besoin de cette information dans README.md ?

@ezh Je pense que ce sera bien d'avoir ceci dans ReadMe .

cette erreur m'accueille sur toutes les plates-formes possibles, j'ai donc commencé à éviter l'achèvement. il devrait être ajouté dans Readme. C'est bien d'avoir la solution.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

josephholsten picture josephholsten  ·  15Commentaires

rosshadden picture rosshadden  ·  6Commentaires

ghost picture ghost  ·  12Commentaires

mhlinder picture mhlinder  ·  3Commentaires

sindresorhus picture sindresorhus  ·  11Commentaires