J'ai essayé de revenir dans le shell depuis mc (en utilisant co) puis fasd :
$ z 32
fasd:4: unknown file attribute: _
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.
Commentaire le plus utile
Je résous ce problème avec la redéfinition _fasd_preexec(). Cordialement @fcelda
dans votre .zshrc
Vous pouvez également le corriger partiellement si vous redéfinissez
fasd_cd
avec le chemin complet vers l'exécutablefasd
. Ainsi, vous n'aurez que la fonction fasd cassée. Et tous vos alias commez
,zz
fonctionneront.PS Avons-nous besoin de cette information dans README.md ?