рд░реВрдмреА рдПрдкреНрд▓реАрдХреЗрд╢рди рдкрд░ рд░реВрдмреА рдореЗрдВ рд╣реЙрдЯрдХреА

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


рд╕рдВрдмрдВрдз


рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ Gemfile рдореЗрдВ рд▓рд╛рдЗрди рдЬреЛрдбрд╝реЗрдВ
 gem 'mousetrap-rails' 

рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
 $ bundle install 

рдлрд┐рд░ рдЬрдирд░реЗрдЯрд░ рдЪрд▓рд╛рдПрдВ, рдЬреЛ рдХрд┐рдлрд╛рдЗрдВрдбрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ keybindings.js.coffee рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдПрд╕реЗрдЯ рдкрд╛рдЗрдк рд▓рд╛рдЗрди рд╕реЗ рдЬреЛрдбрд╝рдХрд░ //= require mousetrap рдЯреВ рдЬреЗрдПрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдХреА //= require mousetrap ред

 $ rails generate mousetrap:install 


рдХреЗ рдЙрдкрдпреЛрдЧ


рдкрд╣рд▓реЗ рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдкреГрд╖реНрда рдиреЗрд╡рд┐рдЧреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЙрдХреНрд╕ рд╕реЗ рдбреЗрдЯрд╛-рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ ( data-keybinding ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рджреГрд╢реНрдп рдХреЛрдб
 = link_to 'Homepage', root_path, data: { keybinding: 'h' } 
рдЖрдкрдХреЛ 'h' рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд╣реЛрдо рдкреЗрдЬ рдкрд░ рдЬрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛

рдФрд░ рдпрд╣ рдЖрдкрдХреЛ 'u' рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Username рдЗрдирдкреБрдЯ рдХреНрд╖реЗрддреНрд░ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдЧрд╛
 = text_field_tag 'Username', nil, data: { keybinding: 'u' } 

рдмреЗрд╢рдХ, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдХреНрд╖рдорддрд╛рдПрдВ рдХреЗрд╡рд▓ рдиреЗрд╡рд┐рдЧреЗрд╢рди рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдЖрдк рдХрд┐рд╕реА рднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рди рдХреЗрд╡рд▓ рдПрдХ рдмрдЯрди рдкрд░, рдмрд▓реНрдХрд┐ рдкреВрд░реЗ рдХреАрдмреЛрд░реНрдб рдХреЙрдореНрдмреЛ рдкрд░ рдЙрд╕рдХреА рдХреЙрд▓ рдХреЛ рд▓рдЯрдХрд╛ рд╕рдХрддреЗ рд╣реИрдВред
 //   Mousetrap.bind '4', -> alert '4 pressed!' Mousetrap.bind 'x', (-> alert 'x pressed!'), 'keyup' //  Mousetrap.bind 'command+shift+k', -> alert 'command+shift+k pressed!' false Mousetrap.bind ['command+k', 'ctrl+k'], -> alert 'command+k or ctrl+k pressed!' false //   Mousetrap.bind 'g i', -> console.log 'gi sequence pressed!' Mousetrap.bind '* a', -> console.log '* a sequence pressed!' // - Mousetrap.bind 'up up down down left right left right ba enter', -> console.log 'You WIN!' 

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреЗрдЬ рдкрд░ Mousetrap рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдиреЗрдВред

рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ


рдореВрд╕рдЯреНрд░реИрдк рдЕрдкрдирд╛ рдХрд╛рдо рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдордгрд┐ рдХреЛ рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рдХрд┐рд╕реА рднреА рд░рдЪрдирд╛рддреНрдордХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд░ рдЦреБрд╢реА рд╣реЛрдЧреАред

рд▓рд┐рдВрдХ (рдЬрд╣рд╛рдВ рдЙрдирдХреЗ рдмрд┐рдирд╛)



┬й рдлреЛрдЯреЛ macrj рджреНрд╡рд╛рд░рд╛

Source: https://habr.com/ru/post/In152057/


All Articles