Fasd: Não funciona sob o comandante da meia-noite

Criado em 22 set. 2014  ·  6Comentários  ·  Fonte: clvv/fasd

Eu tentei pular de volta para o shell do mc (usando co) e depois fasd:

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

Comentários muito úteis

Eu resolvo isso com a redefinição de _fasd_preexec (). Abraços @fcelda

em seu .zshrc

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

Além disso, você pode corrigi-lo parcialmente se redefinir fasd_cd com o caminho completo para fasd executável. Então você terá apenas a função fasd quebrada. E todos os seus aliases como z , zz funcionarão.

PS Precisamos desta informação no README.md?

Todos 6 comentários

Eu encontrei o mesmo problema. Por algum motivo, existe uma função fasd() definida no terminal MC. Não sei como foi parar lá.

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

A remoção da função corrige o problema:

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

Parece que o gancho _fasd_preexec está em conflito com o gancho _mc_precmd . Consegui encontrar uma solução alternativa.

Este é o gancho fasd atual:

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

E este é o gancho do MC:

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

Eu fiz funcionar eliminando a depuração em _fasd_preexec :

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

Não tenho certeza de como corrigir esse problema corretamente. Substituir chaves por parênteses também funcionou, mas não tenho certeza se é desejado executar um sub-shell.

Acabei de encontrar o mesmo problema. Tentei redefinir _fasd_preexec sem sucesso.

Eu resolvo isso com a redefinição de _fasd_preexec (). Abraços @fcelda

em seu .zshrc

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

Além disso, você pode corrigi-lo parcialmente se redefinir fasd_cd com o caminho completo para fasd executável. Então você terá apenas a função fasd quebrada. E todos os seus aliases como z , zz funcionarão.

PS Precisamos desta informação no README.md?

@ezh Acho que será bom ter isso no ReadMe .

esse erro me recebe em todas as plataformas possíveis, então comecei a evitar a conclusão. ele deve ser adicionado no Leiame. Legal ter a correção.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

sbglasius picture sbglasius  ·  5Comentários

rosshadden picture rosshadden  ·  6Comentários

sypl picture sypl  ·  12Comentários

pearofducks picture pearofducks  ·  7Comentários

ghost picture ghost  ·  12Comentários