私は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
}
そしてこれはMCフックです:
% 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
実行可能ファイルへのフルパスを使用してfasd_cd
を再定義すると、部分的に修正できます。 したがって、fasd関数のみが壊れます。 そして、 z
、 zz
のようなすべてのエイリアスが機能します。
PS README.mdにこの情報が必要ですか?
@ezhこれがReadMeにあるといいと思います。
このエラーは可能なすべてのプラットフォームで私を歓迎するので、私は完了を避け始めました。 Readmeに追加する必要があります。 修正してよかったです。
最も参考になるコメント
私はこれを_fasd_preexec()再定義で解決します。 よろしく@fcelda
あなたの.zshrcで
また、
fasd
実行可能ファイルへのフルパスを使用してfasd_cd
を再定義すると、部分的に修正できます。 したがって、fasd関数のみが壊れます。 そして、z
、zz
のようなすべてのエイリアスが機能します。PS README.mdにこの情報が必要ですか?