Ich habe versucht, von mc (mit co) und dann fasd zurück in die Shell zu springen:
$ z 32
fasd:4: unknown file attribute: _
Ich bin auf das gleiche Problem gestoßen. Aus irgendeinem Grund ist im MC-Terminal eine fasd()-Funktion definiert. Ich weiß nicht, wie es dahin gekommen ist.
% which fasd
fasd () {
pwd 7 kill -STOP precmd_functions+=(_mc_precmd)
}
Das Entfernen der Funktion behebt das Problem:
% unset -f fasd
% which fasd
/usr/bin/fasd
% z tmp <tab>
/tmp /home/fcelda/tmp
Es scheint, dass der Hook _fasd_preexec
mit dem Hook _mc_precmd
kollidiert. Ich konnte einen Workaround finden.
Dies ist der aktuelle Fasd-Hook:
% which _fasd_preexec
_fasd_preexec () {
{
eval "fasd --proc $(fasd --sanitize $1)"
} >> "/dev/null" 2>&1
}
Und das ist der MC-Hook:
% which _mc_precmd
_mc_precmd () {
pwd >&7
kill -STOP $$
}
Ich habe es zum Laufen gebracht, indem ich das Debugging in _fasd_preexec
eliminiert habe:
% which _fasd_preexec
_fasd_preexec () {
fasd --proc "$(fasd --sanitize "$1")"
}
Ich bin mir nicht sicher, wie ich dieses Problem richtig beheben kann. Das Ersetzen von geschweiften Klammern durch Klammern funktionierte ebenfalls, aber ich bin mir nicht sicher, ob das Ausführen einer Sub-Shell erwünscht ist.
Habe gerade das gleiche Problem festgestellt. Versucht, _fasd_preexec
ohne Erfolg neu zu definieren.
Ich löse das mit _fasd_preexec() Redefinition. Grüße @fcelda
in Ihrer .zshrc
if ps $PPID |grep -q mc; then
_fasd_preexec () {
fasd --proc "$(fasd --sanitize "$1")"
}
endif
Sie können es auch teilweise beheben, wenn Sie fasd_cd
mit vollständigem Pfad zur ausführbaren Datei fasd
neu definieren. Sie haben also nur die fasd-Funktion unterbrochen. Und alle Ihre Aliase wie z
, zz
funktionieren.
PS Brauchen wir diese Informationen in README.md?
@ezh Ich denke, es wird schön sein, dies in ReadMe zu haben.
Dieser Fehler begrüßt mich auf jeder möglichen Plattform, also habe ich angefangen, die Vervollständigung zu vermeiden. es sollte in Readme hinzugefügt werden. Schön, die Lösung zu haben.
Hilfreichster Kommentar
Ich löse das mit _fasd_preexec() Redefinition. Grüße @fcelda
in Ihrer .zshrc
Sie können es auch teilweise beheben, wenn Sie
fasd_cd
mit vollständigem Pfad zur ausführbaren Dateifasd
neu definieren. Sie haben also nur die fasd-Funktion unterbrochen. Und alle Ihre Aliase wiez
,zz
funktionieren.PS Brauchen wir diese Informationen in README.md?