Fasd: рдЖрдзреА рд░рд╛рдд рдХрдорд╛рдВрдбрд░ рдХреЗ рддрд╣рдд рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 22 рд╕рд┐рддре░ 2014  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: clvv/fasd

рдореИрдВрдиреЗ рдПрдорд╕реА (рд╕рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рд╕реЗ рдЦреЛрд▓ рдореЗрдВ рд╡рд╛рдкрд╕ рдХреВрджрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдлрд┐рд░ fasd:

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

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВ рдЗрд╕реЗ _fasd_preexec () рдкреБрдирд░реНрдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд░рддрд╛ рд╣реВрдВред рд╕рд╛рджрд░ @fcelda

рдЖрдкрдХреЗ .zshrc . рдореЗрдВ

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

рдпрджрд┐ рдЖрдк fasd_cd рдХреЛ fasd рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЗ рдкреВрд░реНрдг рдкрде рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЗрд╕реЗ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ fasd рдлрд╝рдВрдХреНрд╢рди рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реЛрдЧрд╛ред рдФрд░ рдЖрдкрдХреЗ рд╕рднреА рдЙрдкрдирд╛рдо рдЬреИрд╕реЗ z , zz рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред

PS рдХреНрдпрд╛ рд╣рдореЗрдВ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ README.md рдореЗрдВ рдЪрд╛рд╣рд┐рдП?

рд╕рднреА 6 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, 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
}

рдФрд░ рдпрд╣ рдПрдорд╕реА рд╣реБрдХ рд╣реИ:

% 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_cd рдХреЛ fasd рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЗ рдкреВрд░реНрдг рдкрде рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЗрд╕реЗ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ fasd рдлрд╝рдВрдХреНрд╢рди рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реЛрдЧрд╛ред рдФрд░ рдЖрдкрдХреЗ рд╕рднреА рдЙрдкрдирд╛рдо рдЬреИрд╕реЗ z , zz рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред

PS рдХреНрдпрд╛ рд╣рдореЗрдВ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ README.md рдореЗрдВ рдЪрд╛рд╣рд┐рдП?

@ezh рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ ReadMe рдореЗрдВ рд░рдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рдпрд╣ рддреНрд░реБрдЯрд┐ рд╣рд░ рд╕рдВрднрд╡ рдордВрдЪ рдкрд░ рдореЗрд░рд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд░рддреА рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рд╕реЗ рдмрдЪрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдЗрд╕реЗ рд░реАрдбрдореА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд┐рдХреНрд╕ рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

rosshadden picture rosshadden  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rendybjunior picture rendybjunior  ┬╖  14рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ghost picture ghost  ┬╖  12рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

pearofducks picture pearofducks  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

sbglasius picture sbglasius  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ