Fish-shell: рд╕рдорд░реНрдерди рдЗрддрд┐рд╣рд╛рд╕ рд╡рд┐рд╕реНрддрд╛рд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмреИрд╢ !!, рдмреИрдВрдЧ рдмреИрдВрдЧ, рдФрд░! $, рдмреИрдВрдЧ рдбреЙрд▓рд░, рдЯреЛрдХрди)

рдХреЛ рдирд┐рд░реНрдорд┐рдд 20 рдЕрдЧре░ 2012  ┬╖  98рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: fish-shell/fish-shell

рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдбрдмрд▓-рдмреИрдВрдЧ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рддрд░рд╣ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдЬрд┐рд╕реЗ рд╕реБрдбреЛ рдЕрд╕рдлрд▓ рд░реВрдк рд╕реЗ рдвреВрдВрдврдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдордЫрд▓реА-рдЦреЛрд▓ рдХреЗ рд╕рд╛рде рдЙрдмрдВрдЯреВ 12.04 рдПрд▓рдЯреАрдПрд╕ рдкрд░ рд╣реЛрддрд╛ рд╣реИред

рд░рд┐рдкреНрд░реЛ рдХреЗ рд▓рд┐рдП рдХрджрдо:

  1. рдХреЛрдИ рднреА рдЖрджреЗрд╢ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

    $ ls

  2. рдкрд┐рдЫрд▓реЗ рдЖрджреЗрд╢ рдХреЛ рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

    $ рд╕реБрдбреЛ !!
    рд╕реБрдбреЛ: !!: рдЖрджреЗрд╢ рдирд╣реАрдВ рдорд┐рд▓рд╛

    рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░:

рдХрдорд╛рдВрдб sudo !! рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрдорд╛рдВрдб ( ls ) рдХреЛ рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдпрд╣ рднреА рдЬрд╛рдБрдЪ рд▓рд┐рдпрд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ sudo рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ, рдмреИрд╢ рдореЗрдВ рд░реЗрдкреНрд░реЛ рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдХреЗ, рдЬреЛ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред

рд╕рд╛рде рд╣реА, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ Mac OS X 10.7 рдкрд░ рдлрд┐рд╢-рд╢реЗрд▓ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереА рдФрд░ sudo !! рдиреЗ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдХрд┐рдпрд╛ред

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

function sudo
    if test "$argv" = !!
        eval command sudo $history[1]
    else
        command sudo $argv
    end
end

sudo !! рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрднреА рднреА рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ !! рдХрд░рддреЗ рд╣реИрдВред

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

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рдЗрд╕рдХреА рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ: http://fishshell.com/docs/current/faq.html#faq -history

рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдореИрдВ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рдкрд╛рддреНрд░реЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдФрдЪрд┐рддреНрдп рд╕рдордЭрддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрдм рддрдХ рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдБ рдФрд░ рдпрд╣ рдХрд┐ рдПрдВрдб рдФрд░ рд╣реЛрдо рдХреЗ рдмрдЬрд╛рдп Ce рдФрд░ Ca рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП !! рдФрд░ рд▓реИрдкрдЯреЙрдк рдкрд░ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рд╣реЛрдо рдФрд░ рдПрдВрдб рдХреА рдирд╣реАрдВ рд╣реИрдВ, рд╕реБрдбреЛ рдЯрд╛рдЗрдк рдХрд░рдирд╛ рдЕрднреА рднреА рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ !! Up+C-a+sudo рдХреА рддреБрд▓рдирд╛ рдореЗрдВред

рдХреНрдпрд╛ рдЖрдк рдЕрдм рднреА рдЗрддрд┐рд╣рд╛рд╕ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЯреЛрдХрди рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдмрд╣рд╛рд▓ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ?

рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рджреБрд░реНрд▓рдн рдорд╛рдорд▓рд╛ рд╣реИ рдЬрд╣рд╛рдВ !! рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЖрд░рд╛рдорджрд╛рдпрдХ рд╣реИ, рдирд┐рдореНрди рдлрд╝рдВрдХреНрд╢рди рдЖрдЬрд╝рдорд╛рдПрдВ:

function sudo!!
    eval sudo $history[1]
end

рдЬрд┐рд╕реЗ рд╕рд┐рд░реНрдл "рд╕реБрдбреЛ !!" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╛ рджреВрд╕рд░реА рд╕рдВрднрд╛рд╡рдирд╛ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:

function .runsudo --description 'Run current command line as root'
    commandline -C 0
    commandline -i 'sudo '
    commandline -f execute
end
bind \es .runsudo

рдлрд┐рд░ MS рдХреЛ рджрдмрд╛рдХрд░ рдореИрдВ рд╡рд░реНрддрдорд╛рди рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЛ sudo put рдХреЗ рдареАрдХ рд╕рд╛рдордиреЗ рдЪрд▓рд╛рддрд╛ рд╣реВрдВред
рдпрд╛ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдХреЗ рдЖрдк рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдкрд┐рдЫрд▓реА рдХрдорд╛рдВрдбрд▓рд╛рдЗрди рдХреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд░рдЦреЗрдЧрд╛ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ '\e!' рд╕реЗ рдмрд╛рдВрдз рджреЗрдЧрд╛ред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмреЗрд╣рддрд░ рд╣реИ рддреЛ '!!' рдХрд╛ рд╕рд░рд▓ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдирд┐рд╖реНрдкрд╛рджрди рд╕реЗ рдкрд╣рд▓реЗ рдХрдорд╛рдВрдбрд▓рд╛рдЗрди рдХреЛ рджреЗрдЦрдиреЗ рдФрд░ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЕрдВрддрд┐рдо рдХрдорд╛рдВрдб рдореЗрдВ рдереЛрдбрд╝рд╛ рдмрджрд▓рд╛рд╡ рдХрд┐рдпрд╛:

  function .runsudo --description 'Run current command line as root'
    set cursor_pos (echo (commandline -C) + 5 | bc)
    commandline -C 0
    commandline -i 'sudo '
    commandline -C "$cursor_pos"
  end
  bind \es ".runsudo"

рдпрд╣ рдПрдХрдореБрд╢реНрдд рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХрд░реНрд╕рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИред

!$ рд╣реЛрдирд╛ рднреА рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛

function sudo
    if test "$argv" = !!
        eval command sudo $history[1]
    else
        command sudo $argv
    end
end

sudo !! рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрднреА рднреА рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ !! рдХрд░рддреЗ рд╣реИрдВред

рдзрдиреНрдпрд╡рд╛рджред рд╕реВрдбреЛ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ !! рджреЗрдВ рдХрд┐ рдпрд╣ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдмреИрд╢ рдФрд░ zsh рд╕рд╣рд┐рдд рдХрдИ рдЕрдиреНрдп рдЧреЛрд▓реЗ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╣реИред рд╕реБрдбреЛ !! рд╣реЛрдо рдФрд░ рдПрдВрдб рдХреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЪрд╛рдмрд┐рдпрд╛рдВ рдмрд╣реБрдд рджреВрд░ рд╣реИрдВред

рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдлрд┐рд╢-рд╢реЗрд▓ рдХреЗ рд╕рд╛рде рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПред

!! рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрдореНрдореАрджрд╡рд╛рд░ рд╣реИ (#731)

рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╡реНрдпрдХреНрдд рдХрд░ рд░рд╣рд╛ рд╣реИ !! рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╢реЙрд░реНрдЯрдХрдЯред рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдХреЛрдИ рд╣рд░реНрдЬ рдирд╣реАрдВ рд╣реИ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдордЫрд▓реА рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░ рд╕рд┐рд░реНрдл рд╡реНрдпрдХреНрддрд┐рдЧрдд рджрд░реНрд╢рди рд▓рд╛ рд░рд╣реА рд╣реИред

рдЖрджрд░реНрд╢ рд╕рдорд╛рдзрд╛рди рдХреА рдореЗрд░реА рд╡рд░реНрддрдорд╛рди рд╕реЛрдЪ рдпрд╣ рд╣реИ рдХрд┐ !! рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо (#731) рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╣рдо рдЙрдк-рдЖрджреЗрд╢реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░ (#478) рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ (рдПрдХ рдХрдорд╛рдВрдб рдЬреЛ рдПрдХ рдХрдорд╛рдВрдб рд▓реЗрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рд╕реВрдбреЛ)ред рдлрд┐рд░ рдЙрдкрдХрдорд╛рдВрдб рдкрджреЛрдВ рдореЗрдВ рд╕рдВрдХреНрд╖рд┐рдкреНрддреАрдХрд░рдг рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рддрд╛рдХрд┐ 'рд╕реБрдбреЛ !!' рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдЧрд╛ред

рдЦреБрдж рдХреЛ рдЬреЛрдбрд╝рдирд╛

рдпрд╣ рдкреБрд░рд╛рдирд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдпрд╣ рдПрдХ рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдордЫрд▓реА рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЖрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рди рд╣реЛрдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ - рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдорд╛рдВрдб рд╣реЛрдиреЗ рд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рдХреЛ рдЪреЛрдЯ рдирд╣реАрдВ рд▓рдЧрддреА рд╣реИ - рд▓реЛрдЧ рдЪреАрдЬреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред

рд░рд╛рд╕реНрддрд╛ !! рдЕрдзрд┐рдХрд╛рдВрд╢ рдЧреЛрд▓реЗ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд▓реЛрдЧреЛрдВ рдХреЛ рдЪреЛрдЯ рдкрд╣реБрдБрдЪрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдЖрджреЗрд╢ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

echo fish is great!!

рдмреИрд╢ / zsh / tcsh рдореЗрдВ, рдпрд╣ рдХреБрдЫ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдФрд░ рднрдпрд╛рдирдХ рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ !! рдЬрд╛рджреВ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИред рдпрд╣ рдПрдХ рддрд░рд╣ рдХреА рдЕрдЬреАрдмреЛрдЧрд░реАрдм рдмрд╛рддрдЪреАрдд рд╣реИ рдЬрд┐рд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдордЫрд▓реА рдмрд╣реБрдд рдХреЛрд╢рд┐рд╢ рдХрд░рддреА рд╣реИред

рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рдерд╛ рдЕрдорд▓ рдореЗрдВ рд▓рд╛рдирд╛ !! рдЬрд╛рджреВ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЙрдкрдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ 'рдХрдорд╛рдВрдб рдкреЛрдЬреАрд╢рди' рдореЗрдВ рдХреБрдЫ рдЦрд╛рд╕ рдХрд░реЗрдЧрд╛ - рдпрд╣ рддрд░реНрдХреЛрдВ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдпрд╣ рдордЫрд▓реА рдХреЗ рдлреАрдЪрд░ рд╕реЗрдЯ рдХреЛ рднреА рдиреАрдЪреЗ рд░рдЦрддрд╛ рд╣реИ, рдЬреЛ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИред

рдЗрд╕реЗ рдЙрдкрдпреЛрдЧреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ sudo рд╕рдмрд╕реЗ рдЖрдо рдЙрджрд╛рд╣рд░рдг рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде, рдЙрдк-рдЖрджреЗрд╢реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордЫрд▓реА рд╕рд┐рдЦрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА time , strace , рдЖрджрд┐ред рдордЫрд▓реА рддрдм рдЙрдкрдирд╛рдореЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдЧреА "рдЙрдкрдХрдорд╛рдВрдб рд╕реНрдерд┐рддрд┐" рдореЗрдВ, рдЬреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫреА рдФрд░ рдЙрдкрдпреЛрдЧреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред

рдЬрдм рдЖрдк sudo echo fish is great!! рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╕рднреА рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдПрдХ рд╣реА рддрд░реНрдХ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: echo I really like fish (the shell)! рднреА рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реИ? рдореБрдЭреЗ рдпрд╣ рднреА рдЪрд┐рдВрддрд╛ рд╣реИ рдХрд┐ "рдЙрдк-рдЖрджреЗрд╢реЛрдВ" рдХреА рдПрдХ рд╕реВрдЪреА рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдФрд░ рд▓рдЪреАрд▓реЗрдкрди рдХреЛ рдХрдо рдХрд░реЗрдЧрд╛ред

рдЙрдкрдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде, рдХреЗрд╡рд▓ рдЖрджреЗрд╢реЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдордЫрд▓реА рдХреЛ рдкрддрд╛ рдЪрд▓ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдХреМрди рд╕реЗ рддрд░реНрдХ (рдЙрдк) рдЖрджреЗрд╢ рд╣реИрдВ рдФрд░ рдХреМрди рд╕реЗ рдирд╣реАрдВ рд╣реИрдВред рддреЛ sudo echo fish is great!! рдЕрдВрддрд┐рдо-рдХрдорд╛рдВрдб-рд╡рд┐рд╕реНрддрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдмрд▓реНрдХрд┐ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╢рд╛рдмреНрджрд┐рдХ "рдорд╣рд╛рди !!" рд╕реБрдбреЛ (рдФрд░ рдЗрд╕ рддрд░рд╣ рдЧреВрдВрдЬрдиреЗ рдХреЗ рд▓рд┐рдП)ред рдореЗрд░рд╛ рджрд╛рд╡рд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдпрд╣реА рдЙрдореНрдореАрдж рдереАред рдбрд┐рдЬрд╛рдЗрди рдФрд░ рдФрдЪрд┐рддреНрдп рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд╖рд┐рдкреНрддреАрдХрд░рдг (#731) рдФрд░ рдлрд╝рдВрдХреНрд╢рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░ (#478) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рджреЗрдЦреЗрдВред

SirCmpwn рд╕рд╣реА рд╣реИ рдХрд┐ рд╡реНрдпрд╛рдкрдХ рдлрд╝рдВрдХреНрд╢рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЙрдкрдирд╛рдо рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдиреБрдХрд╕рд╛рди рд╣реИ, рдФрд░ рдпрд╣ рднреА рдХрд┐ рдЕрдиреНрдп рд╡рд╛рдХреНрдп рд░рдЪрдирд╛рддреНрдордХ рддрддреНрд╡ рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ git (#434) рдпрд╛ рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб (#967, рдЕрдиреНрдп рдХреЗ рдмреАрдЪ) рдХреЗ рд╕рд╛рде рдмреНрд░реЗрд╕ рд╡рд┐рд╕реНрддрд╛рд░ рдХреА рдЭреБрдВрдЭрд▓рд╛рд╣рдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред рд╕рд┐рдВрдЯреИрдХреНрд╕ рдПрдХ рдЙрдЪреНрдЪ рд▓рд╛рдЧрдд рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ, рдФрд░ рд╣рдо рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдпрд╣ рдЕрдиреНрдп рд╕реБрд╡рд┐рдзрд╛рдУрдВ (рдЬреИрд╕реЗ #354) рдХреЗ рд╕рд╛рде рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИред

рд╡реИрд╕реЗ рднреА рдореЗрд░рд╛ рдпрд╣реА рддрд░реНрдХ рд╣реИ рдХрд┐ рд╕рдорд░реНрдерди рдХреНрдпреЛрдВ !! рдПрдХ рдкреНрд░рд╛рдердорд┐рдХ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛рддреНрдордХ рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВ, рдЬрд┐рд╕рдореЗрдВ рдлрд┐рд╢ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ {} рд╕рд╛рде рддреБрд▓рдирд╛ рдЦрд░рд╛рдм рд╣реИред рдордЫрд▓реА рдореЗрдВ, рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдЕрдиреНрдп рдЧреЛрд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд▓реЛрдЧ рдЙрд╕ рдкрд░ рддрднреА рдЪрдврд╝рддреЗ рд╣реИрдВ рдЬрдм рд╡реЗ рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдмреИрд╢ рдФрд░ рджреЛрд╕реНрддреЛрдВ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдж !! рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рдЕрдиреНрдп рд╕рд╛рдорд╛рдиреНрдп рдЧреЛрд▓реЗ рдХреА рддрд░рд╣ рд╣реА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рднреА, !! рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдЕрдХреНрд╕рд░ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЖрджреЗрд╢реЛрдВ рдореЗрдВ рджреЗрдЦрдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реВрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд▓реЛрдЧреЛрдВ рдиреЗ рдХрд┐рддрдиреА рдмрд╛рд░ рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдлрд▓ рд░рд╣реЗ !! рдордЫрд▓реА рдХреЗ рд╕рд╛рде рдХрд╣реАрдВ рдЕрдзрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрд┐рд╕реА рдиреЗ рд╢рд╛рдмреНрджрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ !! рдПрдХ рдЖрджреЗрд╢ рдореЗрдВред

рдореЗрд░рд╛ рджрд╛рд╡рд╛ рд╣реИ рдХрд┐ ! рдЕрдиреНрдп рдЧреЛрд▓реЗ рдореЗрдВ рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, http://codegolf.stackexchange.com/a/17776/3103 рдкрд░ рдореИрдВрдиреЗ рд╕рд░рд▓ "рд╣реИрд▓реЛ, рд╡рд░реНрд▓реНрдб!" UNIX рд╢реЗрд▓ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЬреЛ ! (рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐ рдкреНрд░рд╢реНрди рдореЗрдВ) рдХреЗ рдХрд╛рд░рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рд╕рд╛рдд рдЕрдкрд╡реЛрдЯ рднреА рдорд┐рд▓реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЬрдм рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реЛ рд╕рдХрддреА рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, !! рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рддрдиреА рдмрд╛рд░ рдЯреЛрдХрди рдХреЗ рд░реВрдк рдореЗрдВ !! рд▓рд┐рдЦреЗрдВрдЧреЗ? рдлрд┐рд░ рд╕реЗ, !! рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдЕрдиреНрдп рдЗрддрд┐рд╣рд╛рд╕ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдкреИрдЯрд░реНрди рдЬреЛрдбрд╝рдиреЗ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рдорд┐рд▓реЗрдЧрд╛, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЬреЛрдбрд╝рдирд╛ - рдордЫрд▓реА рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рдпрд╣ рдкрд╣рд▓рд╛ рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рдерд╛ред рдЕрд╡рд╢реНрдп рд╣реА рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЦреБрдж рдХреЛ рдЬреЛрдбрд╝рдирд╛ - рдЗрд╕рдХреА рдЬрд░реВрд░рдд рд╣реИред

рдпрд╣ рдЪрд╛рд╣рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдЪрд░реНрдЪрд╛ рдореЗрдВ рдкрд╣рд▓реЗ рдмрддрд╛рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдиреЗ рдореБрдЭреЗ sudo рдкреНрд░реАрдкреЗрдиреНрдб рдХрд░рдиреЗ рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп sudo !! рдПрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдВрддрд┐рдо рдХрдорд╛рдВрдб рдХреЛ рд╕реВрдбреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╕рд╛рди рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рджрд┐рдпрд╛ рд╣реИред

рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдХреЛрд╢рд┐рд╢ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдиреЗ рдореБрдЭреЗ рд╕рдорд╛рди рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд░реАрдбрд▓рд╛рдЗрди рдФрд░ zsh рдХреЙрдиреНрдлрд┐рдЧ рдкрд░ рдлрд┐рд░ рд╕реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред

рдпрд╣ рд╕рд╛рдд рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕ (рдЙрдирдореЗрдВ рд╕реЗ рджреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд) рдХреЛ рдПрдХ рдПрдХрд▓ рдмрдВрдзрди рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред

рдЪрд╛рд╣реЗ рдЬреЛ рднреА _you_ рдкрд╕рдВрдж рд╣реЛ - рдХреНрдпрд╛ рд╡рд╛рдХрдИ рдХреЛрдИ рд╡рдЬрд╣ рд╣реИ !! рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рд╣рд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рдЙрдирдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ, рдФрд░ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреБрдЫ рд▓реЛрдЧ рдКрдкрд░ рддреАрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЖрдирдВрдж рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЖрдирдВрдж рд▓реЗрддреЗ рд╣реИрдВ !!, рдФрд░ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдпрд╣ рдПрдХ рдмреБрд░реА рдмрд╛рдд рдХреНрдпреЛрдВ рд╣реЛрдЧреА? рдЬреЛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдЙрдиреНрд╣реЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЗрддрдирд╛ рдХрдард┐рди рдирд╣реАрдВ рд╣реИ? ...

рд╣рд╛рдВ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдлрд┐рд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рде рд╣реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ _not_ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдмреИрд╢ рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдЧреЛрд▓реЗ рдореЗрдВ, рдЬреЛ рдХрд╛рдлреА рд╕рдордп рддрдХ рдХрд╛рдлреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд╛ред

рдореЗрд░реЗ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдКрдкрд░ рдореЗрд░реА рдЯрд┐рдкреНрдкрдгреА рджреЗрдЦреЗрдВ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреНрдпреЛрдВ рдкреЗрд╢ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдХрд┐ рдмреИрд╢ рдФрд░ zsh рдЗрд╕реЗ (рдПрдХ рдирдП рд╡рд╛рдХреНрдп рд░рдЪрдирд╛рддреНрдордХ рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ) рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдореЗрд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдПрдХ рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдордЫрд▓реА рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рд░рд╣рддрд╛ рд╣реИред

"рдЗрдХреЛ рдлрд┐рд╢ рдЗрдЬ рдЧреНрд░реЗрдЯ !!" рдХрд╛ рддрд░реНрдХ '!!' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реЛрдирд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрддрд┐рд╣рд╛рд╕ рдереЛрдбрд╝рд╛ рдХрдордЬреЛрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдмрд╛рдд рд╕рдордЭрддрд╛ рд╣реВрдВред рдПрдХ рд╕рд╛рдзрд╛рд░рдг "рд╕реЗрдЯ рд╢реЗрд▓_рд╣рд┐рд╕реНрдЯреНрд░реА рдПрдбрд╡рд╛рдВрд╕реНрдб" рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдпрд╛ рдХреБрдЫ рдЗрд╕реЗ рдЬреЛрдЦрд┐рдо рдХреЗ рдЗрдЪреНрдЫреБрдХ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддрд╛ рд╣реИ "рдЗрдХреЛ рдлрд┐рд╢ рдмрдврд╝рд┐рдпрд╛ рд╣реИ !!" рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдореИрдХ рдкрд░ рдмреИрд╢ рдХреЗ рд╕рд╛рде:
$ рдХрд╛рдврд╝рд╛ рдЕрджреНрдпрддрди
$ рдХрд╛рдврд╝рд╛ рдкреБрд░рд╛рдирд╛
$ рдХрд╛рдврд╝рд╛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП !!

рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреБрдЫ рд╣рдж рддрдХ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдирдИ рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдкрд┐рдЫрд▓реЗ рдХрдорд╛рдВрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
рдордЫрд▓реА рдХреЗ рд╕рд╛рде рдореИрдВ рдпрд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ:
$ рдХрд╛рдврд╝рд╛ рд▓рд╛рдирд╛ (рдХрд╛рдврд╝рд╛ рдкреБрд░рд╛рдирд╛)
рдЕрдм рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рд╢рд╛рдпрдж рд╡рд╣ рдПрдХ рд╕реБрдЭрд╛рд╡ рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ () рдмреНрд▓реЙрдХ рдХреЗ рднреАрддрд░ рдЗрддрд┐рд╣рд╛рд╕ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг:
$ рдХрд╛рдврд╝рд╛ рд▓рд╛рдиреЗ)

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рднрд▓реЗ рд╣реА рдордЫрд▓реА "рднреНрд░рдорд┐рдд" рдмреИрдХрдЯрд┐рдХреНрд╕ рдХреЗ рдмрдЬрд╛рдп рдЙрдк-рдЖрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдлреА рдЧрд░реНрд╡ рдорд╣рд╕реВрд╕ рдХрд░рддреА рд╣реИ рдФрд░ рдЬрдм рддрдХ рдЖрдк рдПрдВрдЯрд░ рджрдмрд╛рддреЗ рд╣реИрдВ, рддрдм рддрдХ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдирдХреЗ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо рдореИрдВ рддреЛ рдпрд╣реА рджреЗрдЦрддрд╛ рд╣реВрдВред

рдпрджрд┐ рдордЫрд▓реА рдкрд╣рд▓реЗ '(' (рдЙрд░реНрдл рдПрдХ рдЙрдкрдХрдорд╛рдВрдб) рдХреЗ рдмрд╛рдж рдЗрддрд┐рд╣рд╛рд╕ рдЦреЛрдЬ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧреА рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдирд╣реАрдВ рд╣реЛрдиреЗ рд╕реЗ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред

рдЕрдЧрд░ рдореИрдВ рд╕реБрдЭрд╛рд╡ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рддреАрд░ рджрдмрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЙрд╕реЗ рд╕рдВрдкреВрд░реНрдг рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рдмрдЬрд╛рдп рдХреЗрд╡рд▓ рдЕрдВрддрд░рддрдо рдЙрдкрдХрдорд╛рдВрдб рдХреЗ рднреАрддрд░ рдЗрддрд┐рд╣рд╛рд╕ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

:-1:

рдореИрдВ рдЕрднреА рднреА рдХреЗрд╡рд▓ рдмреИрд╢-рд╢реИрд▓реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реВрдВ !! ред

рдореИрдВ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ :up_arrow:, Ctrl+p рдФрд░ рдХрдорд╛рдВрдб рд╣рд┐рд╕реНрдЯреНрд░реА рд╕рд░реНрдЪ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕рдмрдХрдорд╛рдВрдб рдкреЛрдЬреАрд╢рди рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ !!

рдЕрдиреНрдп рдЧреЛрд▓реЗ рдХрд╛ рдкреВрд░рд╛ рдЗрддрд┐рд╣рд╛рд╕ рдПрдкреАрдЖрдИ рдЗрддрдирд╛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдЖрдорддреМрд░ рдкрд░ рдХреЗрд╡рд▓ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ !! рдЗрд╕рдореЗрдВ рд╕реЗред

рд╕рд╣реАред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ рдФрд░ рдХрд╛рдлреА рдЖрд╕рд╛рдиреА рд╕реЗ '!!' рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рджреЗрдЧрд╛ред рдпрд╛ !рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ !! рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо рд╣реЛрдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдХреЗ рд░рд╛рддреНрд░рд┐рдХрд╛рд▓реАрди рдирд┐рд░реНрдорд╛рдгреЛрдВ рдореЗрдВ рд╕рдВрдХреНрд╖рд┐рдкреНрддрд╛рдХреНрд╖рд░ рдХреЗрд╡рд▓ рдХрдорд╛рдВрдб рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рдВрдХреНрд╖рд┐рдкреНрддреАрдХрд░рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд░рд╣реЗ рд╣реИрдВ, рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдУрд╡рд░рд░реЗрдЯреЗрдб рд╣реИ, рдмрд╕ sudo cmd рдпрд╛ eval sudo $cmd ред

@bucaran рдореИрдВ рдмрд┐рд▓реНрдХреБрд▓ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред !! рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рд╣реИ, рдореИрдВ !! рдХреА рдЧрддрд┐ рдХреЛ cmd ?

рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм $cmd рдирд╛рдордХ рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдмрдирд╛рдирд╛ рд╣реИ рдЬреЛ рдЖрдЦрд┐рд░реА рдХрдорд╛рдВрдб рд╣реИ? рдпрд╣ рдПрдХ рджреЗрд╢реА рдЪрд░ рдирд╣реАрдВ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж

@mdsib рд╣рд╛рдБ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рддрд░реНрдХ рд╕реНрдерд┐рддрд┐ рдореЗрдВ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдзрд╛рдЧреЗ рд╕реЗ рдирд┐рд╖реНрдХрд░реНрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд▓реНрдж рд╣реА рдХрд┐рд╕реА рднреА рд╕рдордп рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдЗрд╕ рдЬреАрдердм рдореБрджреНрджреЗ рд╕реЗ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ zsh рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрджрд┐рдпреЛрд╕!

рдЗрд╕рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐ !! рдпрд╣рд╛рдВ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕рд▓рд┐рдП рдХрд┐ рдПрдХ рдХрд╛рдлреА рд╕рд░рд▓ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬреАрдердм рдореБрджреНрджрд╛ рджрд╛рд░реНрд╢рдирд┐рдХ рдмреАрдПрд╕ рдХреЗ рдХрд╛рд░рдг рд▓рд╛рдЧреВ рдХрд┐рдП рдмрд┐рдирд╛ 3 рд╕рд╛рд▓ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рд╣реИред

рдпрд╣ рджреЗрдЦрдирд╛ рдордЬрд╝реЗрджрд╛рд░ рд╣реИ рдХрд┐ рд▓реЛрдЧ рджреВрд╕рд░реЛрдВ рдХреЛ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛрдИ рдмрдбрд╝реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИред рдЬрд╝рд░реВрд░, рдЖрдк рдЗрд╕реЗ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИ.. рдпрд╣ рдРрд╕рд╛ рд╣реИ рдЬреИрд╕реЗ рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЛ рд╣рд░рд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдиреАрд▓рд╛ рдмреЗрд╣рддрд░ рд╣реИред
рдлрд┐рд░ рднреА рдЪреВрдВрдХрд┐ рдПрдХ "рд╕рд░рд▓" рд╕реБрд╡рд┐рдзрд╛ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдореЗрдВ рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд╢рд╛рдпрдж рдХрд┐рд╕реА рдХреЛ рдордЫрд▓реА рдХреЛ рдлреЛрд░реНрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрджрд┐ рд╡реЗ рдореМрдЬреВрджрд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдХреБрдЫ рдФрд░ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд╣реАрдВ рдЬрд▓реНрджреА рдкрд╣реБрдВрдЪ рдЬрд╛рдПрдЧрд╛ред

рдореИрдВрдиреЗ ~/рдмрд┐рди/!! рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

#!/bin/fish
eval $history[1]

рдЕрд▓реНрдкрд╛рд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдпрд╣ рдореБрдЭреЗ рд▓рд╛рдкрддрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдФрд░ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреА рдореЗрд░реА рдкреНрд░рд╡реГрддреНрддрд┐ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ !!ред
рдореИрдВрдиреЗ ~/bin/!vi рднреА рдмрдирд╛рдпрд╛:

#!/bin/fish
for f in $history
    echo $f | grep '^vi'
    if test "$status" = "0"
        eval $f
        exit $status
    end
end

рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдЦреЛрд▓ рд╡рд╣реА рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдореИрдВ рдЕрдм рдФрд░ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВред

@SirCmpwn рдХреНрдпрд╛ рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ !! рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмреИрд╢ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:

ls some_long_file.txt
!!:s/ls -l/cat/

рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ !! рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рдП рдпрд╛ рдирд╣реАрдВ? рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛ рдХрд╣рддреЗ рд╣реИрдВ "рдордЫрд▓реА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП !!" рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдЪрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЖрдкрдХреЛ (рдпрд╛ рдХрд┐рд╕реА рдХреЛ) рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдХреИрд╕реЗ !! рдордЫрд▓реА рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ (рдЕрд░реНрдерд╢рд╛рд╕реНрддреНрд░, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ)ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛? рдпрд╣ рд╡рд┐рд╕реНрддрд╛рд░ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрдЧрд╛, рдЬреИрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд┐рд╕реНрддрд╛рд░? рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рддрд░реНрдХ рд╡рд┐рднрд╛рдЬрди рдХреИрд╕реЗ рд╣реЛрдЧрд╛? рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдПрд╕реНрдХреЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдпрд╣ рдПрдХ рдИрдорд╛рдирджрд╛рд░ рдЕрдиреБрд░реЛрдз рд╣реИред рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдПрдХрд▓ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ; рд╣рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдареЛрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреА рдЬрд░реВрд░рдд рд╣реИред

рдпрджрд┐ рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ, "рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдорд╛рдорд▓рд╛ рдХрд╛рдо рдХрд░реЗ, рдФрд░ рдореБрдЭреЗ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреИрд╕реЗ," рддреЛ рдпрд╣ рдареАрдХ рдФрд░ рдорд╛рдиреНрдп рд╣реИред рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХреЛ рдХреБрдЫ рднреА рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рд╡рд░рдгреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдПрдХ рдареЛрд╕ рдпреЛрдЬрдирд╛ рд╡реИрд╢реНрд╡рд┐рдХ рдЙрдкрдирд╛рдореЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рдмрдирд╛рдиреЗ рдХреА рд╣реИ !! рдПрдХ рдореЗрдВред рдПрдХ рд╡рд┐рдХрд▓реНрдк рдпрд╣ рд╣реИ рдХрд┐ рдбреЙрдХрдкреНрдЯ рдХрд╛рдо рдХреЛ рдорд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдП, рд╕реВрдбреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрдВрдХреНрд╢рди рд╕рд┐рдЧреНрдиреЗрдЪрд░ рджрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдлрд┐рд░ рдмрдирд╛рдпрд╛ рдЬрд╛рдП !! рдПрдХ рдирд┐рдпрдорд┐рдд рдЙрдкрдирд╛рдо рдореЗрдВред рд╣рдо рдХрд┐рд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕реЛрдЪрддреЗ рд╣реИрдВ !! рд╣рд░ рдЬрдЧрд╣, рдпрд╛ рд╕рд┐рд░реНрдл рдХрдорд╛рдВрдб рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

@ridiculousfish рдЖрдк рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдПрдХ '!!' рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдХреЛ рдХрд╛рдлреА рд╡рд┐рд╕реНрддреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рд╡рд┐рд╢реЗрд╖ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдХрднреА рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╣рдореЗрд╢рд╛ рдРрд╕рд╛ рдХреБрдЫ рдХрд░рддрд╛ рд╣реВрдВ:
$ ls -l some_long_file.txt
$ ^ рдПрд▓рдПрд╕-рдПрд▓ ^ рдХреИрдЯ

рдЬрд╛рд╣рд┐рд░ рд╣реИ рдпрд╣ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЕрд▓рдЧ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рд╣реЛрдЧрд╛, рдХрд┐ рдореБрдЭреЗ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдордЫрд▓реА рдХрд╛ рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИред

"рдордЫрд▓реА: рдЖрджреЗрд╢ рдирд╛рдо рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╕рдордп рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдордЫрд▓реА рдЖрджреЗрд╢ рд╕реЗ рдкрд╣рд▓реЗ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рд╕рдВрдЪрд╛рд▓рди рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреА рд╣реИред"

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдорд╛рдВрдб рд╕реНрдерд┐рддрд┐ рдореЗрдВ '^' рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореМрдЬреВрджрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕реА рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реИ, рдмрд╕ рдЗрд╕рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рд╕рд╣реА рд╣реИрдВ рдХрд┐ '!!' рдХреА рд╕реНрдкрд╖реНрдЯ рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред (рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рд┐рд░реНрдл рдЗрддрд┐рд╣рд╛рд╕ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди) рдХрд╛ рдЕрд░реНрде рд╣реИред

рдпрд╣рд╛рдВ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:

$ !!
$ some command `!!`
$ !keyword 
$ !123

рдзрдиреНрдпрд╡рд╛рдж @gillham , рдлреАрдЪрд░ рдбрд┐рдЬрд╛рдЗрди рдХрд░рддреЗ рд╕рдордп рдЗрд╕ рддрд░рд╣ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рд╣реЛрддреА рд╣реИред

рдореИрдВ рдпрд╣ рднреА рдиреЛрдЯ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ !! рдФрд░ !$ рд▓рд┐рдП рдПрдХ рдЪрддреБрд░ рд╕рдорд╛рдзрд╛рди рд╣реИ: https://github.com/fish-shell/fish-shell/wiki/Bash-Refugees

рдмреЗрд╣рддрд░ рдлрд┐рдХреНрд╕ #5:
рдордЫрд▓реА рдЗрддрдиреА рдЗрддрд┐рд╣рд╛рд╕ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реИ, рдХрд┐ рдЬрдм рд╕реВрдбреЛ рдХреЛ рднреВрд▓ рдЧрдП рдпрд╛ рдЕрдиреНрдпрдерд╛ рдПрдХ рдЧреИрд░-рдХрд╛рд░реНрдпрд╢реАрд▓ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рдкреНрд░рджреВрд╖рд┐рдд рдХрд░ рджрд┐рдпрд╛, рддреЛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЗ рд╕рдордп рдХреЗ рд▓рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рд▓рдВрдмреЗ рд╕рдордп рдореЗрдВ) рдЗрд╕реЗ рдЗрддрд┐рд╣рд╛рд╕ рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдорд┐рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рд╣рд╛рдВ, рдпрд╣ рдПрдХ рдирдпрд╛ рдЯрд░реНрдорд┐рдирд▓ рдЦреЛрд▓реЗрдВ, рдмреИрд╢ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдФрд░ ~/.config/fish/fish_history рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВред рдЬрдм рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рдХрдВрдЬреВрд╕реА рдХреА рд╣реИ, рддреЛ рдордЫрд▓реА рдиреЗ рдореБрдЭреЗ рдмрд╛рд░-рдмрд╛рд░ рдЧрд▓рдд рдХрдорд╛рдВрдб рдкрд░ рд▓реЗ рдЬрд╛рдпрд╛ рд╣реИред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛ@nyarly рдХреА mkdir тАж; cd !$ рдЖрджрдд рдХреА рдмрд╛рдд рд╣реИ, рдореИрдВ mkcd тАж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:

function mkcd --description 'mkdir and cd'
        mkdir $argv[1]
        and cd $argv[1]
end

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрддрд┐рд╣рд╛рд╕ рд╕реЗ рдорд┐рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрд╢ рд╢реЗрдВрдЧреЗрдирд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ:

history --delete --prefix some_command

fish_config history рдЖрдкрдХреЛ рдЗрд╕реЗ рдкреЙрдЗрдВрдЯ-рдПрди-рдХреНрд▓рд┐рдХ рджреНрд╡рд╛рд░рд╛ рднреА рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИред

https://github.com/fish-shell/fish-shell/wiki/Bash-Style-History-Substitution- (!!-and-!$) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдордЫрд▓реА рдХреЗ рднреАрддрд░ рдХрд╛рдлреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рд╢рд╛рдпрдж рдореБрджреНрджрд╛ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

:-1: :-1: рдЬрдм рддрдХ рдкреВрд░реНрдг рдмреИрд╢ рд╕рдВрдЧрддрддрд╛ рдореЛрдб рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдлрд┐рд╕рд▓рди рдврд▓рд╛рди рд╣реИред рдпрджрд┐ рдЗрд╕реЗ рдордЫрд▓реА рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд┐рдВрдЧрд▓ !s рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛, рдФрд░ ksh рдЗрддрд┐рд╣рд╛рд╕ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? $() рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдордЫрд▓реА рдПрдХ рд╕реАрдПрд╕рдПрдЪ-рд╢реИрд▓реА рдХрд╛ рдЦреЛрд▓ рд╣реИред рдЕрдЧрд░ рд▓реЛрдЧ рдЕрдиреБрдХреВрд▓рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ/рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рддреЛ zsh...

рдЬреЛ рд▓реЛрдЧ рдЗрд╕реЗ рдвреВрдВрдврддреЗ рд╣реИрдВ рдЙрдирдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рдЪрд░реНрдЪрд╛ рд╕реЗ рдПрдХ tl; dr рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛ рджреЗрдЦрд╛ рд╣реИред (3 рд╡рд░реНрд╖ рд╕реЗ рдЕрдзрд┐рдХ рдореЗрдВ)

  1. рдЯреАрдо рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреА, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
  2. рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реЛрдЧ рд╣реИрдВ рдЬреЛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
  3. рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯреАрдо рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реИ рд▓реЗрдХрд┐рди рдХреБрдЫ рдмрдирд╛рдиреЗ рдХреЛ рддреИрдпрд╛рд░ рд╣реИ
    рдЕрдЧрд░ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдбреЗрдЯрд╛ рджреЗрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
  4. рд▓реЛрдЧ рдпрд╛ рддреЛ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдирд╣реАрдВ рд╣реИ, рдПрдХ рдРрд╕рд╛ рд╕рдорд╛рдзрд╛рди рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдЬреЛ рдЕрдзрд┐рдХрддрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реЛ, рдпрд╛ рдлрд┐рд░ рдЪрд▓рддрд╛ рд╣реИ
    рджреВрд╕рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ред

рдореИрдВ рдмрд╛рдж рд╡рд╛рд▓реЗ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реВрдВ, рдЬрдмрдХрд┐ рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдореИрдВ рдордЫрд▓реА рдХрд╛ рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдФрд░ рдЙрд╕ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЛ рдЙрди рдорд╢реАрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреНрд░рдпрд╛рд╕ рдХреЗ рдХрд░рддрд╛ рд╣реВрдВ (рдореБрдЭреЗ рд╡рд┐рднрд┐рдиреНрди рдорд╢реАрдиреЛрдВ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯрдЕрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ), рдФрд░ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ! ! рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдЗрд╕ рдЙрдореНрдореАрдж рдореЗрдВ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдПрдХ рджрд┐рди рдордЫрд▓реА рдореЗрд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдЧреАред

@ рдЯреЗрдЯреНрд░рд╛-рдЖрд░реНрдХреЛрд╕ рдХрд┐рд╕реА рдиреЗ рдЕрднреА рддрдХ рдХреЛрдИ рдареЛрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдирд╣реАрдВ рд░рдЦрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕ рдмрд╛рдд рдХреА рдкрдХреНрдХреА рд╕рдордЭ рдирд╣реАрдВ рд╣реИ рдХрд┐ "рдлреАрдЪрд░" рдХреНрдпрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рдЖрдк рдЗрддрдиреЗ рдЗрдЪреНрдЫреБрдХ рдереЗ, рддреЛ рдпрд╣ рдПрдХ рдмрдбрд╝реА рдорджрдж рд╣реЛрдЧреА рдпрджрд┐ рдЖрдк рдпрд╣ рд╕реБрдЭрд╛рд╡ рджреЗрдВ рдХрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рди рд╣реЛрдиреЗ рдкрд░, рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЗрддрд┐рд╣рд╛рд╕ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд░реВрдкреЛрдВ рдХреЛ рдХрдо рд╕реЗ рдХрдо рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкреВрд░реНрдг рдмреИрд╢ рдЗрддрд┐рд╣рд╛рд╕ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╡реНрдпрд╡рд╣рд╛рд░ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╣реИ, рдФрд░ рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рднреА рд╣реИ, рдЗрд╕рд▓рд┐рдП "рдмрд╕ рд╡рд╣реА рдХрд░реЗрдВ рдЬреЛ рдмреИрд╢ рдХрд░рддрд╛ рд╣реИ" рдПрдХ рдЧреИрд░-рд╕реНрдЯрд╛рд░реНрдЯрд░ рд╣реИред

рдХрд┐рд╕реА рдиреЗ рдЕрднреА рддрдХ рдХреЛрдИ рдареЛрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдирд╣реАрдВ рд░рдЦрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕ рдмрд╛рдд рдХреА рдкрдХреНрдХреА рд╕рдордЭ рдирд╣реАрдВ рд╣реИ рдХрд┐ "рд╕реБрд╡рд┐рдзрд╛" рдХреНрдпрд╛ рд╣реИред

@ рдЯреЗрдЯреНрд░рд╛-рдЖрд░реНрдХреЛрд╕: рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЕрдм рддрдХ, рдЗрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ 'рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ "!!" !!' рдФрд░ рд╢рд╛рдпрдж "!$" (рдЬреЛ "рдЕрдВрддрд┐рдо рдЖрджреЗрд╢ рдХрд╛ рдЕрдВрддрд┐рдо рддрд░реНрдХ рдбрд╛рд▓реЗрдВ")ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЗрд╕реЗ (рдпрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк) рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ рддреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рд╡рд░рдг рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдзрдорд╛рдХрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

  • рдЖрдк рдЗрддрд┐рд╣рд╛рд╕ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд╛ рдХреМрди рд╕рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рдХреНрдпрд╛ рдпрд╣ рд╕рд┐рд░реНрдл "рдпрд╣рд╛рдВ рдЕрдВрддрд┐рдо рдХрдорд╛рдВрдб рдбрд╛рд▓реЗрдВ" ("!!") рдФрд░ "рдЕрдВрддрд┐рдо рдХрдорд╛рдВрдб рдХрд╛ рдЕрдВрддрд┐рдо рддрд░реНрдХ рдпрд╣рд╛рдВ рдбрд╛рд▓реЗрдВ" ("! $"), рдпрд╛ рдЕрдиреНрдп рд╕рднреА рд╕рд╛рдорд╛рди рдЬреИрд╕реЗ " !!:s/string1/string2" (рдореИрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп "рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди" рдореЛрдб рдЬреЛрдбрд╝реВрдВрдЧрд╛ рдЬреИрд╕реЗ emacs '' рдХреНрд╡реЗрд░реА-рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди "рдпрд╛ рд╡рд┐рдо рдХрд╛": s/" рддрд╛рдХрд┐ рдЖрдк рдЗрд╕реЗ _before_ рдЧрд▓рдд рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХреЗрдВ)? рдХреИрд╕реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ "рдореЗрд░реЗ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рдкрд╛рдБрдЪрд╡рд╛рдБ рдХрдорд╛рдВрдб рдбрд╛рд▓реЗрдВ" ("!5") - рдЬреЛ рдореБрдЭреЗ рдХрднреА рдирд╣реАрдВ рдорд┐рд▓рд╛ - рдпрд╛ "рдкрд╛рдБрдЪрд╡рд╛рдБ-рдЖрдЦрд┐рд░реА рдХрдорд╛рдВрдб рдбрд╛рд▓реЗрдВ" ("!-5")? " рд╢рдмреНрдж рдбрд┐рдЬрд╝рд╛рдЗрдирд░ " рдФрд░ " рд╕рдВрд╢реЛрдзрдХ " рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ?
  • рдХреНрдпрд╛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХрдорд╛рдВрдб рддреБрд░рдВрдд рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛ (рдпрд╛рдиреА рдЖрдк sudo !! рджрд░реНрдЬ рдХрд░реЗрдВ, рдПрдВрдЯрд░ рджрдмрд╛рдПрдВ рдФрд░ рдкреВрд░реА рдЪреАрдЬ рддреБрд░рдВрдд рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛ) рдпрд╛ рдЗрд╕реЗ рдкрд╣рд▓реЗ рдбрд╛рд▓рдирд╛ рдареАрдХ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдЖрдк рджреЛрдмрд╛рд░рд╛ рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХреЗрдВ - рдпрд╣ рдРрд╕рд╛ рд╣реИ "Histverify" рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдмреИрд╢ рдХрд░реЗрдВ (рдореИрдВ рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреА рдУрд░ рдЭреБрдХреВрдВрдЧрд╛)?
  • рдХреНрдпрд╛ рдЗрд╕реЗ "!!" рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ "!$" рдпрд╛ рдЗрд╕реЗ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛рдиреА рдорд╛рдВрд╕рдкреЗрд╢реА-рд╕реНрдореГрддрд┐ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИ? рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдо рдХрднреА рднреА 100% рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ, рдФрд░ рдЗрддрд┐рд╣рд╛рд╕ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди _is_ рдмреИрд╢ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ

рдпрджрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдорд╛рдВрд╕рдкреЗрд╢реА-рд╕реНрдореГрддрд┐ рд╣реИ, рддреЛ рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рдЕрдкрдиреЗ fish_user_key_bindings рдореЗрдВ рднреА рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ:

bind '!!' 'commandline -i "$history[1]"'
bind '!$' 'history-token-search-backward'

(рдпрд╣ рдореБрджреНрджрд╛ рд╣реИ, рд╣рдореЗрдВ рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдореЗрдВ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рджреВрд╕рд░реЗ рд╡рд░реНрдг рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "!" рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ)

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ !! рдмреБрд░рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ

рдХрдорд╛рдВрдб sudo !! рдХрд┐рд╕реА рдХреЛ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рддрд╛ рдХрд┐ рд╢реЗрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛ред
рдЕрдЧрд░ рдореИрдВ ' a nfang' рдкрд░ sudo рд╕рд╛рде p revisious рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдЯрд╛рдЗрдк рдХрд░рддрд╛ рд╣реВрдВ

^p ^a sudo

рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рдЗрддрд┐рд╣рд╛рд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд▓рд╛рдЗрди рд╕рдВрдкрд╛рджрди рдХрдорд╛рдВрдб ^p рдФрд░ ^a рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрджреЗрд╢ рдЬреЛрдбрд╝реЗрдВред

!!: command not found, try 'Ctrl-p Ctrl-a' to prefix the previous command with 'sudo' or any other  prefix

рдореБрдЭреЗ !! рднреА рдирдлрд░рдд рд╣реИред рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╕рд╛рди рд╡рд┐рдзрд┐ fish_vi_mode рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ ^p ^a :

^v k I

рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдХреБрдЫ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХрдо рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИред
10 рдирд╡рдВрдмрд░ 2015 рдХреЛ рд╕реБрдмрд╣ 8:14 рдмрдЬреЗ, "рдЗрд╡рд╛рди рдерд╛рдо" рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдореБрдЭреЗ рдирдлрд░рдд рд╣реИ !! рдмрд╣реБрддред ^p . рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ fish_vi_mode рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛
^рдП:

^рд╡реАрдХреЗ рдореИрдВ

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/fish-shell/fish-shell/issues/288#issuecomment -155416048
.

рдЙрд▓рдЯрд╛ рд╕рдЪ рднреА рд╣реИред

рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рджреЛрдиреЛрдВ рдкрдХреНрд╖реЛрдВ рдХреА рд╡реИрдз рдЬрд░реВрд░рддреЗрдВ рдФрд░ рдЪрд┐рдВрддрд╛рдПрдВ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЦреНрдп рд╣реЛрд▓реНрдбрдЕрдк рддреНрд╡рд░рд┐рдд рдФрд░ рдЧрдВрджреЗ рддрд░реАрдХреЗ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ _right_ рддрд░реАрдХрд╛ рдвреВрдВрдв рд░рд╣рд╛ рд╣реИ

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ, рд╡реЗ рдмрд╕ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ
рдореЗрд░реА (рдФрд░ рдЬрд╛рд╣рд┐рд░ рддреМрд░ рдкрд░ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреА) рдЬрд╝рд░реВрд░рддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВред
10 рдирд╡рдВрдмрд░ 2015 рдХреЛ рджреЛрдкрд╣рд░ 12:19 рдмрдЬреЗ, "рдПрд░рд┐рдХ рдорд░рд╛рдХ" рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдЙрд▓рдЯрд╛ рд╕рдЪ рднреА рд╣реИред

рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рджреЛрдиреЛрдВ рдкрдХреНрд╖реЛрдВ рдХреА рд╡реИрдз рдЬрд░реВрд░рддреЗрдВ рдФрд░ рдЪрд┐рдВрддрд╛рдПрдВ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ
рдореБрдЦреНрдп рд╣реЛрд▓реНрдбрдЕрдк рддреНрд╡рд░рд┐рдд рдФрд░ . рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ _right_ рддрд░реАрдХрд╛ рдвреВрдВрдв рд░рд╣рд╛ рд╣реИ
рдЧрдВрджрд╛ рддрд░реАрдХрд╛

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/fish-shell/fish-shell/issues/288#issuecomment -155494929
.

рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЙрди рдкрд░ рдереЛрдбрд╝рд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: рдореБрдЭреЗ "!!" рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреАрдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдорд┐рд▓реА рд╣реИред

рдореИрдВрдиреЗ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрд╛ рд╣реИ рдЬреЛ рдХреБрдЫ рдХреБрдВрдЬреА (^ рдореЗрд░реЗ рд▓рд┐рдП рдПрд╕, bind \cs 'prepend_command sudo' ) рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рд╣реИ, рддреЛ рдпрд╣ рд╕реВрдбреЛ рдХреЛ рдкреНрд░реАрдкреЗрдиреНрдб рдХрд░рддреА рд╣реИред рдпрджрд┐ рдХреЛрдИ рд╕рд╛рдордЧреНрд░реА рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рд╕реВрдбреЛ рдХреЛ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рдЕрдВрддрд┐рдо рдЖрдЗрдЯрдо рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рддреЛ sudo !!<Enter> рдЕрдм ^S<Enter> рдмрди рдЬрд╛рддрд╛ рд╣реИред

function prepend_command
  set -l prepend $argv[1]
  if test -z "$prepend"
    echo "prepend_command needs one argument."
    return 1
  end

  set -l cmd (commandline)
  if test -z "$cmd"
    commandline -r $history[1]
  end

  set -l old_cursor (commandline -C)
  commandline -C 0
  commandline -i "$prepend "
  commandline -C (math $old_cursor + (echo $prepend | wc -c))
end

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

рдмреЗрд╢рдХ, рдпрд╣ some_command --with-subshell-param (!!) рдЬреИрд╕реА рдЕрдиреНрдп рдорд╛рдВрдЧреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред

@ рдЕрд╣рддреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрджрдорд╛рд╢ рд╣реИ, рдмрд╕ рдЗрд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрд▓рд╛рдЬ рд╣реЛрдЧрд╛, рдереЛрдбрд╝реА рджреЗрд░ рдореЗрдВ рд╡рд╛рдкрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдЧрд╛!

рд╣рд╛рдБ, рдЕрдм рддрдХ рдпрд╣ sudo !! ред рдПрдХ рдЖрджреЗрд╢ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдзреЗ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рд╣реЛрдирд╛ рдФрд░ рдЗрд╕реЗ рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ sudo рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдореЗрд░реЗ рд╕рд╛рде рдмрд╣реБрдд рдХреБрдЫ рд╣реЛрддрд╛ рд╣реИред ^s , рддрддреНрдХрд╛рд▓ sudo рдЙрдкрд╕рд░реНрдЧ!

рд╡реНрдпрдХреНрддрд┐рдЧрдд рддреМрд░ рдкрд░ рдореИрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ !! рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рдВрджрд░реНрдн рдореЗрдВ sudo !! рддрд╛рдХрд┐ рдореБрдЭреЗ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╕рдВрдпреЛрдЧ рд╕реЗ рдореИрдВрдиреЗ рдЕрднреА fish_vi_mode рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдкрд╕рдВрдж рдХрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реАрдЖрдИ рдореЛрдб рдореЗрдВ ^s рдЕрдм рдФрд░ рдмрд╛рдзреНрдп рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред рд╕реБрдЭрд╛рд╡?

рдареАрдХ рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ config.fish рдореЗрдВ рдХреБрдВрдЬреА рдмрдВрдзрди рдерд╛ред рдореИрдВрдиреЗ #2254 рдкрд╛рдпрд╛ рдФрд░ рдлрд┐рд░ https://github.com/faho/fish-shell/commit/f7e8ad632a388d5f1c5eb4cfc33f3cdb1f7fd831 рдкрд╛рдпрд╛ рдФрд░ рдлрд┐рд░ http://stackoverflow.com/a/16675092/292408 рдкрд╛рдпрд╛ рдЬрд┐рд╕рдиреЗ рдкреБрд╖реНрдЯрд┐ рдХреА рдХрд┐ рдореБрдЭреЗ рдЕрдкрдиреЗ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ fish_user_key_bindings рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдЕрднреА рддрдХ рдореМрдЬреВрдж рдирд╣реАрдВ рдерд╛ред

рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рдЕрдм рдЬрдм рдореИрдВ рд╡реАрдЖрдИ рдХрдорд╛рдВрдб рдореЛрдб [N] рдореЗрдВ рд╣реВрдВ рддреЛ рдЙрдкрд╕рд░реНрдЧ рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдкреЗрдЬрд░ рдореЗрдВ рдореМрдЬреВрджрд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Alt-P рд╣реИ; рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдореЗрдВ Alt-S рднреА рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @Ahti рд╣рд░ рдХрд┐рд╕реА рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реБрдВрджрд░ рд╕рдорд╛рдзрд╛рди рд╣реИред рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рдпрд╛ рдЕрдЬреАрдм рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдХреАрдмрд╛рдЗрдВрдб рдкрд░ рд╕реАрдзреЗ рдЬрд╛рдПрдВред рдпрд╣ рдЖрдкрдХреА рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдпрд╛ рд░рджреНрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЯреЗрдХреНрд╕реНрдЯ рд░рдЦрддрд╛ рд╣реИред

рдореБрдЭреЗ @nyarly рдХрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдФрд░ @Ahti рдХрд╛ рдкреНрд░рдореБрдЦ рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╕рдорд╛рдзрд╛рди рджреЛрдиреЛрдВ рдкрд╕рдВрдж рд╣реИрдВред
рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ !! рдХреЗрд╡рд▓ sudo !! . рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХрд░рддрд╛ рд╣реВрдВ

рдУрдП! рдпрд╣ рдзрд╛рдЧрд╛ рдЕрдм рд▓рдЧрднрдЧ рдЪрд╛рд░ рд╕рд╛рд▓ рдкреБрд░рд╛рдирд╛ рд╣реИред рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ .com рдФрд░ ╟Г╟Г.net рдЦрд░реАрджрд╛ рд╣реИ (рдЬреЛ рдХрд┐ рдЬреАрдердм рдореБрдЭреЗ рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХ рдирд╣реАрдВ рджреЗрдЧрд╛, рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ) рдЕрдЧрд░ рдХреЛрдИ рдЙрдиреНрд╣реЗрдВ рдЪрд╛рд╣рддрд╛ рд╣реИред

рдЕрд░реЗ! рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ! @ рдЬреНрдпреЛрдл-рдХреЛрдб рдЖрдкрдиреЗ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛?)

рдЙрдиреНрд╣реЛрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ .com рдФрд░ .net "рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХреГрдд" рдбреЛрдореЗрди рдирд╛рдореЛрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИред
screen shot 2016-05-11 at 4 53 48 am

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рд╕рдордп рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЕрднреА рднреА рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ т╡Мт╡С.com рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди .com рдХреЛ рдирд╣реАрдВред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдЖрдк рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ !!.com, рд╡рд╣ рдкрд╛рдЧрд▓ рд╣реИред

рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рд╕реАрдЦрд╛ рд╕рдмрдХ: рдпрджрд┐ рдЖрдк рдХрднреА рднреА рдПрдХ рдпреВрдирд┐рдХреНрд╕ рд╢реЗрд▓ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╡рд╣ рд╣реИ рд╕реВрдбреЛ !!, рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рд░рд╣ рд╕рдХрддреЗред

рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рд▓реЛрдЧреЛрдВ рд╕реЗ рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рд╢рдмреНрдж рдорд┐рд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ:

@bucaran рд╣рд╛рдБ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ ред

рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХреГрдд рдбреЛрдореЗрди рдирд╛рдо - IDNs:

https://en.wikipedia.org/wiki/Internationalized_domain_name

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдзреАрдореА рдЧрддрд┐ рд╕реЗ, рдФрд░ рдЙрди @geoff-codes рдЬреИрд╕реЗ рдкрдВрдЬреАрдХрд░рдг рднреА! рдпрд╣ рдПрдХ рдмреБрджреНрдзрд┐рдорд╛рди рдирд┐рд╡реЗрд╢ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рджреЛ рдЕрдХреНрд╖рд░ (рд╕реЙрд░реНрдЯрд╛) .com!

#!.com рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреЗрдХ рд▓реЗ рд▓рд┐рдпрд╛ рд╣реЛрддрд╛ред рдХреНрдпрд╛ рдХреЛрдИ рдирд┐рдпрдо рд╣реИ рдЬреЛ рдХреЙрдо рдЯреАрдПрд▓рдбреА рдХреЗ рд▓рд┐рдП, рдпрд╛ рдЙрдиреНрд╣реЗрдВ рдХреБрдЫ рд╣рд▓ рдХрд░рдиреЗ рдкрд░ рд░реЛрдХ рд▓рдЧрд╛рддрд╛ рд╣реИ?

рд╡рд┐рдВрдбреЛрдЬ рдкреНрд░реЗрдЬреЗрдВрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП рдмреИрд╢ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡реНрдпрдХреНрддрд┐ рдиреЗ рдХреБрдЫ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛
рдЗрд╕ рддрд░рд╣:

$> рд╣реИрд▓реЛ рд╡рд┐рдВрдбреЛрдЬ рдЧреВрдВрдЬ !!

рдФрд░ рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рднреА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реБрдЖ рдерд╛ред
11-рдордИ-2016 рдХреЛ рджреЛрдкрд╣рд░ 1:57 рдмрдЬреЗ, "рдЖрд░реЛрди рдЧреЗрдпрд╕" рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдп рдбреЛрдореЗрди рдирд╛рдо - IDNs

11 рдордИ 2016 рдХреЛ рд╕реБрдмрд╣ 4:44:58 рдмрдЬреЗ рдЯрд┐рдореЛрдлреА (рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди@github.com) рдиреЗ рд▓рд┐рдЦрд╛:

рдЕрд░реЗ! рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ! @geoff-codes https://github.com/geoff-codes рдХреИрд╕реЗ рдХрд┐рдпрд╛
рдЖрдк
рд╡реЛ рдХрд░реЗрдВ?)

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдереНрд░реЗрдб рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
<
https://github.com/fish-shell/fish-shell/issues/288#issuecomment -218435761

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/fish-shell/fish-shell/issues/288#issuecomment -218438118

рддреЛ, рдореБрдЭреЗ рдмреИрд╢ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

@ рдмреЗрд╕ 698 - рдЗрддрд┐рд╣рд╛рд╕ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рджреЛ рд╕рдмрд╕реЗ рдЖрдо рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рдордЫреБрдЖрд░реЗ рдкреНрд▓рдЧрдЗрди рдбрд╛рд▓рдиреЗ рдХреЛ рдШрд╛рдпрд▓ рдХрд░ рджрд┐рдпрд╛: !! рдкреВрд░реЗ рдЕрдВрддрд┐рдо рдЖрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдФрд░ !$ рдЕрдВрддрд┐рдо рддрд░реНрдХ рдХреЗ рд▓рд┐рдПред рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореИрдВрдиреЗ рдЬреНрдпрд╛рджрд╛рддрд░ рдЕрдкрдиреА рдЖрджрддреЛрдВ рдХреЛ рддреЛрдбрд╝рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдордЫрд▓реА рдХреА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рд╕рдВрдкрд╛рджрди рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рдлрд┐рд░ рднреА, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдкрд╕рдВрдж рд╣реИ

> which tool
> cat (!!)

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

рдордЫреБрдЖрд░реЗ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдк fisher install nyarly/fish-bang-bang рд╕рд╛рде рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП (рдФрд░ рдПрдХ рд╕рд╣реА рдЙрджрд╛рд╣рд░рдг рджреЗрддреЗ рд╣реБрдП)
рдпрд╣рд╛рдВ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдпреВрдЯреНрдпреВрдм рд╡реАрдбрд┐рдпреЛ рдХрд╛ рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╣реИ, рдпрд╣ '!!' рдХреА рдорд╣рд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдкреИрдЯрд░реНрди рдЬреЛ рдЕрдм рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИред
bangpatternbash

https://www.youtube.com/watch?v=2dB0igTfhfg&feature=youtu.be&t=760

рд╡рд╣ git commit -a -m "Rawr!!" рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ

git commit -a -m "Rawrclear" рдореЗрдВ рдкрд░рд┐рдгрд╛рдо

рдЬрд┐рддрдирд╛ рдореБрдЭреЗ рдордЫрд▓реА рд╕реЗ рдкреНрдпрд╛рд░ рд╣реИ !! рдЕрднреА рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ sudo !! рд▓реЗрдХрд┐рди рдкрд┐рдЫрд▓реА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдирдП рдЖрджреЗрд╢реЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рд░реВрдк рдореЗрдВ рднреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

find . -name something | grep "pattern" рддреЛ рдореИрдВ рдкреИрдЯрд░реНрди рдХреЗ рд╕рд╛рде рддрдм рддрдХ рдЦреЗрд▓реВрдВрдЧрд╛ рдЬрдм рддрдХ рдореБрдЭреЗ рд╡рд╣ рдирд╣реАрдВ рдорд┐рд▓ рдЬрд╛рддрд╛ рдЬреЛ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдПред
рдлрд┐рд░ рдореИрдВ рдЗрд╕реЗ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкрд╛рд╕ рдХрд░ рджреВрдВрдЧрд╛ (someCommand !! )ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдордЫрд▓реА рдореЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЪрд░рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдХрд╛рдордХрд╛рдЬ рдореЗрд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

zsh рдлреИрд▓рддрд╛ рд╣реИ !! рддрд╛рдХрд┐ рдЖрдк рдЗрд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХреЗрдВред рддреЛ zsh рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛ред

рдпрджрд┐ рдЖрдк рдордЫреБрдЖрд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдЬреЛ рдЖрдкрдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП) рддреЛ рдЖрдк nyarly/fish-bang-bang рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ !! рдФрд░ !$ рдХрд╣реАрдВ рднреА-рдЗрди-рдж-рдХрдорд╛рдВрдб рд╡рд┐рд╕реНрддрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

@nyarly рд╣рд╛рдБ, рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреАред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рджреВрд╕рд░реЗ ! рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдпрд╣ рдХреИрд╕реЗ рдлреИрд▓рддрд╛ рд╣реИред рдЕрдЯрдкрдЯрд╛ рд▓рдЧрд╛ред zsh рдмреЗрд╣рддрд░ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реНрдкреЗрд╕ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдпрд╛ рдПрдВрдЯрд░ рд╣рд┐рдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдлреИрд▓рддрд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ, рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред рдореИрдВ рднреВрд▓ рдЧрдпрд╛ рдерд╛ рдХрд┐ ZSH рдХреЛ рдЬреЛ рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд╡рд╣ рд╣реЛрдирд╛ рдХрд┐рддрдирд╛ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИред Nyarly рдХреЗ рдкреНрд▓рдЧрдЗрди рдХреЛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

[рд╣рд▓] рдпрд╣рд╛рдБ:
https://blog.hospodarets.com/fish-shell-the-missing-config

рдореБрдЭреЗ рдмрд╣реБрдд рдЦреБрд╢реА рд╣реИ рдХрд┐ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛! рдпрд╣ рдордЫрд▓реА рдХреЗ рдСрд░реНрдереЛрдЧреЛрдиреИрд▓рд┐рдЯреА рдХреЗ рдирд┐рдпрдо рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлреЛрдХрд╕ рдХреЗ !! рдФрд░ !$ рдФрд░ рд╢рд╛рдпрдж s^ рд╕реЗ рдкрд░реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реЛрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд▓реЛрдЧ рдЗрдирдХрд╛ рд╣реА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддреЗ рд╣реИрдВред рдордЫрд▓реА рдХрд╛ рд╕рдорд╛рдзрд╛рди рдЕрдзрд┐рдХ рд╕рдВрд╡рд╛рджрд╛рддреНрдордХ рд╣реИ, рдЬреЛ рддрд░реНрдХреЛрдВ рдХреЗ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╕реНрдЯреНрд░реЛрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдХреБрд╢рд▓ рд╣реИ, рдФрд░ !! рд╕рд╛рде рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдХреБрд╢рд▓ рд╣реИред

рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ !! рдФрд░ !$ рдХреЛ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдЕрд▓рдЧ рддрд░реАрдХрд╛ рд╕реАрдЦрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдордЫрд▓реА рдХреЛ рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдСрд░реНрдереЛрдЧреЛрдиреИрд▓рд┐рдЯреА рдХрд╛ рдХрд╛рдиреВрди рджреЗрдЦреЗрдВ)? рдпрд╛ рд╕рднреА рдмреИрд╢ рдЗрддрд┐рд╣рд╛рд╕ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди? рдпрд╛ рдЕрдиреНрдп рдЧреЛрд▓реЗ рд╕реЗ рд╕рднреА рд╕реБрд╡рд┐рдзрд╛рдПрдБ? рд╡реЗ рд╕рднреА рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ?

рдпрд╣рд╛рдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдХреБрдЫ рдХреЙрдкреА рдФрд░ рдкреЗрд╕реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:

рдЗрд╕реЗ ~/.config/fish/functions/fish_user_key_bindings.fish . рдореЗрдВ рдбрд╛рд▓реЗрдВ

function bind_bang
  switch (commandline -t)
  case "!"
    commandline -t $history[1]; commandline -f repaint
  case "*"
    commandline -i !
  end
end

function bind_dollar
  switch (commandline -t)
  case "!"
    commandline -t ""
    commandline -f history-token-search-backward
  case "*"
    commandline -i '$'
  end
end

function fish_user_key_bindings
  bind ! bind_bang
  bind '$' bind_dollar
end

https://github.com/fish-shell/fish-shell/issues/288#issuecomment -7869918 рд╕реЗ рд▓рд┐рдВрдХ @siteshwar URL рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рд╕реНрдЯрд┐рд▓-рдУрдкрди рдореБрджреНрджреЗ рдХреЛ рдкрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгреА рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдореИрдВрдиреЗ рдЙрдирдХреА рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдХрд┐ рд╣рдо рдЕрдм рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдореЗрдЬрдмрд╛рдиреА рдХрд╣рд╛рдВ рдХрд░рддреЗ рд╣реИрдВред

рдЕрдм рдЙрд╕ рдордЫрд▓реА рдХреЗ рдкрд╛рд╕ && рдФрд░ || (https://github.com/fish-shell/fish-shell/issues/4620) рдпрд╣ рдмреИрд╢ рдХреЗ рдкреВрд░реНрдг рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реЛрдиреЗ рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рд╣реИ!

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд▓рдЭрди рдореЗрдВ рд╣реВрдБ --

рддреЛ рд╢реЗрд▓ рдЬреЛ рдЕрдкрдирд╛ рдирдВрдмрд░ 1 рдбрд┐рдЬрд╝рд╛рдЗрди рд▓рдХреНрд╖реНрдп рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рд╣реИ:

1. Everything that can be done in other shell languages should be possible to do in fish

... рдореБрдЭреЗ рд╣рд░ рджреВрд╕рд░реЗ рд╢реЗрд▓ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ?

рдлрд┐рд╢ рдПрдлрдПрдХреНрдпреВ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЪрд╛рд╣рд┐рдП

First press Up, then Home, then type "sudo ".

рдпрд╛рд░, рдХреНрдпрд╛ рдЦрд┐рдВрдЪрд╛рд╡ рд╣реИред рдкрд┐рдЫрд▓реЗ рдЫрд╣ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдХрд┐рддрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдХрд┐рд╕реА рднреА рдХрд╛рд░рдг рд╕реЗ 'рд╣реЛрдо' рдмрдЯрди рджрдмрд╛рдпрд╛ рд╣реИ? рдЙрд╕ рд▓рдВрдмрд╛рдИ рдореЗрдВ, рдореИрдВ рддрд░реНрдХ рджреЗ рд╕рдХрддрд╛ рдерд╛ рдХрд┐ рдореИрди рдкреЗрдЬ рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХрдорд╛рдВрдб рдХреЗрд╡рд▓ рд▓рд╛рдирдд рдореИрди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрд▓рдиреЗ рдФрд░ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдвреВрдВрдврдиреЗ рд╕реЗ рдСрд░реНрдереЛрдЧреЛрдирд▓ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред

@andysalerno
рдЖрдк рдЬреЛ рдХреНрд░рд┐рдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рд╕реБрдбреЛ рдкреНрд░реАрдкреЗрдб рдХреЗ рд╕рд╛рде рдкрд┐рдЫрд▓реА рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реИ
рдФрд░ рдордЫрд▓реА рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп
First type "sudo ", then press shift+1, then press shift+1
рдореИрдВ рдХрд░реВрдБрдЧрд╛
ctrl+p, ctrl+a, type "sudo "
рдпрд╣ рдмреИрд╢ рдореЗрдВ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдЕрдм рдЬрдм рдЖрдкрдиреЗ рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рддреЛ рдореИрдВрдиреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЬрд╛рдВрдЪрд╛ рдФрд░ рдХрд┐рд╕реА рдиреЗ рдЗрд╕ рд╢реЙрд░реНрдЯрдХрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рд┐рд╕реНрд╕рд╛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЕрдм рдЧрд╛рдпрдм рд╣реИред (рдореИрдВрдиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП https://github.com/fish-shell/fish-shell/pull/3879 рдмрдирд╛рдпрд╛ рд╣реИ)
рдЗрд╕ рд╢реЙрд░реНрдЯрдХрдЯ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ readline рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рд▓рд╛рдЗрди рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдирдХрд▓ рдХреА рдЬрд╛рддреА рд╣реИред
рдЕрдЧрд░ рдореБрдЭреЗ рд╕рдордп рдорд┐рд▓рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЗрд╕реЗ рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рддреИрдпрд╛рд░ рдХрд░реВрдВрдЧрд╛
рдореИрдВ рдЖрдкрдХреА рд╣рддрд╛рд╢рд╛ рдХреЛ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реВрдВ, Home рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рдХреБрдВрдЬреА рдХрдИ рдХреАрдмреЛрд░реНрдб (рдЬреИрд╕реЗ рдореЗрд░реЗ рд╕рднреА 3 рдХреАрдмреЛрд░реНрдб) рдкрд░ рдПрдХ рдЕрд▓рдЧ рд╕реНрдерд╛рди рдкрд░ рд╣реИред

рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП thxред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди (рдХреЗрд╡рд▓ рд╕рдВрд╢реЛрдзрдХ рдФрд░ рдЕрдХреНрд╖рд░ рдХреБрдВрдЬрд┐рдпрд╛рдБ, рдХреЛрдИ рд╣реЛрдо рдХреБрдВрдЬреА рдирд╣реАрдВ, рдХреЛрдИ рддреАрд░ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдирд╣реАрдВ), рддреЗрдЬрд╝ (рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреАрд╕реНрдЯреНрд░реЛрдХ рдирд╣реАрдВ) рдФрд░ _documented_ рддрд░реАрдХрд╛ рд╣реЛрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛, рдореБрдЭреЗ ctrl+p рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рдереА! рдореБрдЭреЗ рдпреЗ рддреЛ рдФрд░ рднреА рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ !!

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
рдХреНрдпрд╛ рдЕрдВрддрд┐рдо рд░рди рдХрдорд╛рдВрдб рдХрд╛ рдкреБрдирд░реНрдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЕрдиреНрдп рддрд░реАрдХрд╛ рд╣реИ? рдореИрдВ рдЦреБрдж рдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрд╣реБрдд рдХреБрдЫ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:

> man -w fish  # prints location of man file for fish
/usr/share/fish/man/man1/fish.1

> less $(!!)

рдпрд╣ рдЙрддрдирд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ eval рдФрд░ history рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗ рд╕рд╛рде рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

> man -w fish
/usr/share/fish/man/man1/fish.1

> less (eval $history[1])

рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ alt-p рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрдорд╛рдВрдб рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж alt-p рджрдмрд╛рддреЗ рд╣реИрдВ рддреЛ рдордЫрд▓реА рдХрдорд╛рдВрдб рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдХрдо рдХрд░ рджреЗрдЧреА:

> man fish рдСрд▓реНрдЯ-рдкреА > man fish ^&1 |less;

рдореИрдВ рд╕рднреА рдПрдВрдЯреА-рдмреИрдВрдЧ рд▓реЛрдЧреЛрдВ рдХреЛ рдирд╣реАрдВ рд╕рдордЭрддрд╛ .. рдРрд╕реЗ рдХрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдЬрд╣рд╛рдВ рдмреИрдВрдЧ рд╕рд╛рдорд╛рди рд╣рдВрд╕рддреЗ рд╣реБрдП рддреЗрдЬрд╝ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ "рдХрд╛рдо рдХреЗ рдЖрд╕рдкрд╛рд╕" рд╕реЗ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ:
First press Up, then Home, then type "sudo ".

рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдЙрдирдХреЗ рдЕрднреНрдпрд╕реНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ рдмреИрдВрдЧ рдХрдорд╛рдВрдб рдЬрд╛рджреВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ .. рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдордЫрд▓реА рд▓реЛрдЧ рдЕрдкрдирд╛ рдорди рдмрджрд▓ рд▓реЗрдВрдЧреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡рд╛рдкрд╕ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдЕрдЪреНрдЫреЗ, рдЬреИрд╕реЗ:

!!
!WORD
!WORD:p
!:n
!$
!^
!n:n
!:gs/MISTAKE/FIX
!#
!#^

рдордЫрд▓реА рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╣реИ, рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддреЗ рд░рд╣реЛ

рдХреНрдпрд╛ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рдЕрдВрддрд┐рдо рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╕рдорд░реНрдерд┐рдд рддрд░реАрдХрд╛ рд╣реИ? рдореБрдЭреЗ рдЗрд╕реЗ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЕрдкрдиреА рдЕрдиреНрдп tmux рд╡рд┐рдВрдбреЛ рдореЗрдВ рдХрдорд╛рдВрдб рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рдореИрдХреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдРрд╕рд╛ рдХреБрдЫ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:

$ echo "hi"
hi
$ x
hi
$ x
hi

рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА eval $history[1] , рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рдХреЙрд▓ рдлрдЯ рдЧрдИред !! рдХрдорд╛рдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣реА рдЙрдкрдпреЛрдЧреА рдмрд╛рдд рд╣реИред рдПрдХ рдЪреАрдЬ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИ рд╡рд╣ рд╣реИ рддреАрд░ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдХреНрдпрд╛ рдордЫрд▓реА рдореЗрдВ рдХреЛрдИ рдЖрджреЗрд╢ рд╣реИ рдЬреЛ рдЗрд╕ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ?

рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдореИрдВ рдЕрднреА рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдПрдХ рдкреНрд░рдореБрдЦ рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ:

$ function x ; eval $history[1] ; end
$ echo "hi"
hi
$  x    # note leading space
hi
$  x
hi

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ рдореБрдЭреЗ рдкрддрд╛ рд╣реИред рдЗрд╕ рд╕рд╛рдзрд╛рд░рдг рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рд╛рд▓рд╛рдВрдХрд┐, history-search-backward рдмрд╛рдзреНрдпрдХрд╛рд░реА рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП? рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рддреАрд░ рдХреБрдВрдЬреА рд╣реИ рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рдЬреЛрдбрд╝ рдпрд╛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдУрд╣! рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдореИрдВрдиреЗ рдЕрдЧреНрд░рдгреА рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛ред рдореБрдЭреЗ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреА рд╣реЛрдЧреАред

рдЕрджреНрдпрддрди рдХрд░реЗрдВ :
рдпрд╣ рдореЗрд░реЗ рдЙрдкрдпреЛрдЧрдХреЗрд╕ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред $ eval $history[1] #note extra leading space

рд╢рд╛рдпрдж рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ рдордЫрд▓реА рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд░рд╣ рд╕рдХрддрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдФрд░ рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдИ рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рд╢реЙрд░реНрдЯрдХрдЯ рдХреА рдХрдореА рдЗрд╕реЗ рдЕрдиреБрддреНрдкрд╛рджрдХ рдмрдирд╛рддреА рд╣реИ:

рдкрд╣рд▓реА рд╡рд╕реНрддреБред рдореИрдВ рд╕реБрдбреЛ рдХреЗ рд╕рд╛рде рдкрд┐рдЫрд▓реА рдХрдорд╛рдВрдб рджреЛрд╣рд░рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:

sudo !!

1) рдКрдкрд░ рдХрд╛ рдмрдЯрди рджрдмрд╛рдПрдВ
рд╕рдорд╕реНрдпрд╛, рдореБрдЭреЗ рдХреАрдмреЛрд░реНрдб рдкрд░ рдЕрдк рдмрдЯрди рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рд╣реИред рд▓рдЧрднрдЧ рдПрдХ-рдЪреМрдерд╛рдИ рдмрд╛рд░ рдореБрдЭреЗ рдпрд╣ рдпрд╛рдж рдЖрддреА рд╣реИ рдФрд░ рдлрд┐рд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреАрдмреЛрд░реНрдб рдкрд░ рдиреАрдЪреЗ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рд╣реИ рдФрд░ рд╢рд╛рдпрдж рдЬреЛ рдХреБрдЫ рднреА рдЧрдбрд╝рдмрдбрд╝ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдЙрд╕реЗ рдареАрдХ рдХрд░реЗрдВред рдлрд┐рд░...
2) рд╣реЛрдо рд╣рд┐рдЯ рдХрд░реЗрдВ рдпрд╛ Ctrl-A
рд╣реЛрдо рдПрдХ рдФрд░ рдЦрд┐рдВрдЪрд╛рд╡ рд╣реИ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдХреАрдмреЛрд░реНрдб рдкрд░ рдЗрддрдиреЗ рд╡рд┐рд╡рд┐рдз рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЗрд╕рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреА рд╣реЛрдЧреАред Ctrl-A рдЕрдзрд┐рдХ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЖрддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
3) 'рд╕реБрдбреЛ' рдЯрд╛рдЗрдк рдХрд░реЗрдВ рдФрд░ рд░рд┐рдЯрд░реНрди рд╣рд┐рдЯ рдХрд░реЗрдВред
рдареАрдХ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рд╕рд╛рдд рдХреАрд╕реНрдЯреНрд░реЛрдХ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдФрд░ рдореЗрд░реЗ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рдХреЗ рдмрдбрд╝реЗ рдкреНрд░рддрд┐рд╢рдд рдкрд░ рдмрд╛рдзрд┐рдд рд╣реЛрдиреЗ рдХрд╛ рдХрд╛рд░рдг рд╣реИред

рдЕрдЧрд▓рд╛ рдЖрдЗрдЯрдо, рдореИрдВ рдкрд┐рдЫрд▓реЗ рдЕрдВрддрд┐рдо рддрд░реНрдХ рдХреЛ рдХреИрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:

ls -l /etc/network/iptables
cat !$

рдпрд╛ рдордЫрд▓реА рдХреЗ рд╕рд╛рде:
1) 'рдмрд┐рд▓реНрд▓реА' рдЯрд╛рдЗрдк рдХрд░реЗрдВ
2) рдСрд▓реНрдЯ-рдЕрдк
рдареАрдХ рд╣реИ, рдлрд┐рд░ рд╕реЗ рдпрд╣ рдмрд╣реБрдд рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдирд╣реАрдВ рд╣реИред рдореИрдВ рд╢рд╛рдпрдж рд╣реА рдХрднреА Alt рдХреБрдВрдЬреА рдХреЛ рд╣рд┐рдЯ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЕрдХреНрд╕рд░ рдЗрд╕рдХреЗ рдЖрдЧреЗ рд╕реБрдкрд░ (Cmd/Windows/рдЬреЛ рднреА) рдХреБрдВрдЬреА рджрдмрд╛рддрд╛ рд╣реВрдВ рдЬреЛ рдЙрд╕ рд╕рдВрджрд░реНрдн рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣реВрдВред

рд╕рднреА рдкреНрд░рдореБрдЦ рджрд╛рд╡реЗрджрд╛рд░реЛрдВ рдХреА рддрд░рд╣ рдордЫрд▓реА рдХреЛ рдмреЗрд╣рддрд░ рдЗрддрд┐рд╣рд╛рд╕ рд╡рд┐рд╕реНрддрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреА рдХрдореА рдЙрдЪреНрдЪ рдЕрдВрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рдХрдореА рд╣реИред

@wreclass рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЕрдкрдиреА рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рд╕реЗ sudo !! рдирд╣реАрдВ рдорд┐рд▓рд╛, рдореИрдВрдиреЗ https://github.com/nyarly/fish-bang-bang рд▓рд┐рдЦрд╛, рдЬреЛ рдореИрдВ рдЖрдкрдХреЛ рд╕реБрдЭрд╛рдКрдВрдЧрд╛ ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдИрдЖрдИрдЖрд░рд╕реА, "рдкреНрд░реАрдкреЗрдиреНрдб рд╕реВрдбреЛ" рдХреЗ рд▓рд┐рдП Alt-S рдХреЗ рд╕рд╛рде рдордЫрд▓реА рдЬрд╣рд╛рдЬ рдЬреЛ рдЕрдВрддрд┐рдо рдЗрддрд┐рд╣рд╛рд╕ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдпрджрд┐ рдЖрдкрдХрд╛ рдЖрджреЗрд╢ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЦрд╛рд▓реА рд╣реИ, рд╡реИрд╕реЗ рд╣реА Alt-P | less рдЬреЛрдбрд╝ рджреЗрдЧрд╛ред

рдФрд░ рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рдпрд╣ рдКрдкрд░ рдЖрддрд╛ рд░рд╣рддрд╛ рд╣реИ, ("рдЕрд░реНрдерд╛рдд рдХреНрдпреЛрдВ рдирд╣реАрдВ !! рдордЫрд▓реА рдореЗрдВ рд╡реИрд╕реЗ рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдпрд╣ рдмреИрд╢ рдХрд░рддрд╛ рд╣реИ") рдореИрдВ рд╕рдВрдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ: ! рдЪрд░рд┐рддреНрд░ рдХрд╛ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдЪрд╛рд░ рдЙрди рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛ рдЬреЛ рдореБрдЭреЗ рдмреИрд╢ рд╕реЗ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ред рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рдордЫрд▓реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдЕрдЧрд░ рдЙрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдПрдХ рдореБрдЦрд░ рдЕрд▓реНрдкрд╕рдВрдЦреНрдпрдХ рдХреЛ рдЦреБрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдпрд╛ рдЧрдпрд╛ рддреЛ рдореБрдЭреЗ рдмрд╣реБрдд рдирд┐рд░рд╛рд╢рд╛ рд╣реЛрдЧреАред

sudo !! рдПрдХ рдРрд╕реА рдорд╛рдирдХ рдЪреАрдЬ рд╣реИред рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдордЫрд▓реА рдкреНрд░рд╛рдЪреАрди рдмреИрд╢ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕реЗ рджреВрд░ рд╣реЛрдиреЗ рдХреА рдмрд╣реБрдд рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рд╡реНрдпрдХреНрддрд┐рдЧрдд рджрд░реНрд╢рди рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╡реИрдз рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рд╕реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдкреНрд░рдЧрддрд┐ рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВред

@ClickSentinel , рдЗрд╕реА рдХрд╛рд░рдг рд╕реЗ рдореИрдВрдиреЗ fish рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдФрд░ bash рдЯрд┐рдХрд╛ рд░рд╣рд╛ред :рд╕реНрдорд╛рдЗрд▓реА:

рд╣рдорд╛рд░реА рд╡рд░реНрддрдорд╛рди рдпреЛрдЬрдирд╛ рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрддрд╛рдХреНрд╖рд░реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рд╣реИ, рдЬреЛ рддрдм "!!" рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЕрдиреНрдпред рдЙрд╕рдХреЗ рд▓рд┐рдП #5003 рджреЗрдЦреЗрдВред

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЙрд╕рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдкрдирд╛ рдХрд╛рдо рдХрд░ рдЪреБрдХрд╛ рд╣реИред

@tukusejssirs рдФрд░ @ClickSentinel , рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдореЗрдВ https://github.com/fish-shell/fish-shell/issues/288#issuecomment -306212011 рдкрд░ рдХреЛрдб рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ?

рдореЗрд░реЗ рдкрд╛рд╕ рдХрдИ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЗрд╕рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ (рдПрдХ рдореБрджреНрджреЗ рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд (рдпрд╣ рдореБрджреНрджрд╛, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?) рдореЗрд░реЗ рдкрд╛рд╕ !$ рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдКрдкрд░ рдХреА рдУрд░ рдЯреЛрдХрди рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣реИ, рдпрд╣ рдЙрди рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдирд╛рд░рд╛рдЬ рд╣реИрдВ рдЬрдм рдмреИрд╢ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред)

рдореЗрд░рд╛ рд╕рдВрд╕реНрдХрд░рдг (рдпрд╛ рд╢рд╛рдпрдж рдореИрдВрдиреЗ рд╡рд┐рд╡рд┐рдзрддрд╛ рдЪреБрд░рд╛ рд▓реА рд╣реИ... рдпрд╛рдж рдирд╣реАрдВ рдЖ рд░рд╣рд╛ :man_shrugging: ):

function bind_bang
    switch (commandline --current-token)[-1]
    case "!"
        # Without the `--`, the functionality can break when completing
        # flags used in the history (since, in certain edge cases
        # `commandline` will assume that *it* should try to interpret
        # the flag)
        commandline --current-token -- $history[1]
        commandline --function repaint
    case "*"
        commandline --insert !
    end
end

function bind_dollar
    switch (commandline --current-token)[-1]
    # This case lets us still type a literal `!$` if we need to (by
    # typing `!\$`). Probably overkill.
    case "*!\\"
        # Without the `--`, the functionality can break when completing
        # flags used in the history (since, in certain edge cases
        # `commandline` will assume that *it* should try to interpret
        # the flag)
        commandline --current-token -- (echo -ns (commandline --current-token)[-1] | head -c '-1')
        commandline --insert '$'
    case "!"
        commandline --current-token ""
        commandline --function history-token-search-backward


    # Main difference from referenced version is this `*!` case
    # =========================================================
    #
    # If the `!$` is preceded by any text, search backward for tokens
    # that contain that text as a substring. E.g., if we'd previously
    # run
    #
    #   git checkout -b a_feature_branch
    #   git checkout master
    #
    # then the `fea!$` in the following would be replaced with
    # `a_feature_branch`
    #
    #   git branch -d fea!$
    #
    # and our command line would look like
    #
    #   git branch -d a_feature_branch
    #
    case "*!"
        # Without the `--`, the functionality can break when completing
        # flags used in the history (since, in certain edge cases
        # `commandline` will assume that *it* should try to interpret
        # the flag)
        commandline --current-token -- (echo -ns (commandline --current-token)[-1] | head -c '-1')
        commandline --function history-token-search-backward
    case "*"
        commandline --insert '$'
    end
end

function fish_user_key_bindings
    bind ! bind_bang
    bind '$' bind_dollar
end

рдзрдиреНрдпрд╡рд╛рдж @ Scooter-dangle рдпрд╣ #228 . рд╕реЗ рднреА рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдРрд╕реЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдордЫрд▓реА рдХреБрдЫ рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧреА:

LANG=C :
fish: Unsupported use of '='. To run ':' with a modified environment, please use 'env LANG=C :тАж'

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ !! рднреА, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдРрд╕рд╛ рд╕рдВрджреЗрд╢ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЕрдзрд┐рдХ рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рддрд░реАрдХрд╛ рд╕реБрдЭрд╛рддрд╛ рд╣реИ?

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдкреНрд░рд╕реНрддрд╛рд╡ рдЙрддрдирд╛ рд╣реА рдХреБрд╢рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рддреБрд▓рдирд╛ рдХрд░рдирд╛:

  • sudo !!<enter> , рд╕рднреА рдХреАрдмреЛрд░реНрдб рдкрд░ рд╣рд╛рдереЛрдВ рдХреА рдЖрдзрд╛рд░ рд╕реНрдерд┐рддрд┐ рд╕реЗ
  • <up><home>sudo <enter> , рдЬреИрд╕рд╛ рдХрд┐ рдордЫрд▓реА рдХреЗ рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди рдореЗрдВ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ , рдЬрд╣рд╛рдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рдереЛрдВ рдХреА рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рдЪрд╛рд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИрддрдерд╛рдХреАрдмреЛрд░реНрдб рдкрд░ рд╣реИрдВред
  • <C-p><Ca>sudo <enter> , рдмрд┐рдирд╛ рд╣рд╛рде рд╣рд┐рд▓рд╛рдП рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп, рдЬреЛ рдмреИрд╢, рдЬреЗрдбрдПрд╕рдПрдЪ рдФрд░ рд╢рд╛рдпрдж рдЕрдзрд┐рдХ рдХреА рдЪреВрдХ рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирдИ рдЖрджрдд рдХреЛ рдЕрдкрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реИ рдЬрдм рдЙрдиреНрд╣реЗрдВ рдЕрдиреНрдп рдЧреЛрд▓реЗ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред

!$ , <alt-.> рд╕реБрдЭрд╛рд╡ рджреЗрдирд╛ рдареАрдХ рд▓рдЧрддрд╛ рд╣реИ, рд╣реИ рдирд╛?

@psychoslave рдХреГрдкрдпрд╛ рд╕рднреА рдкреБрд░рд╛рдиреЗ рдореБрджреНрджреЛрдВ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдирд╛ рдмрдВрдж рдХрд░реЗрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрдВрдж рд▓реЛрдЧреЛрдВ рдкрд░ред

рдЗрд╕ рдкрд░ рднреА рддрд╛рд▓рд╛ рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ рд▓рдЧрднрдЧ рдкрдЪрд╛рд╕ рдмрд╛рд░ рджрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИред

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

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

olivergondza picture olivergondza  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

badp picture badp  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

euclio picture euclio  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

thomcc picture thomcc  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

frankyan picture frankyan  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ