рд▓рд┐рд╕реНрдк рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ?

рдЕрдХреНрд╕рд░ рдЖрдкрдХреЛ рдпрд╣ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╢реБрд░реБрдЖрддреА рдХреЙрдорди рд▓рд┐рд╕реНрдк рдХреЛ рдХреИрд╕реЗ рдЖрдЬрд╝рдорд╛рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рд╢рд┐рдХрд╛рдпрдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╡реЗ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдРрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХреА рдЬрд╛рдП, рдЬреЛ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рд╣реМрд▓ рд╕реЗ рд╕рдорд╛рди "рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛" рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрдм рдЖрдкрдиреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛, рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛, рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд┐рдирд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдЕрдВрджрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд▓рдЧреЗред рдЗрд╕реЗ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдирд╛ред


рдЖрдк рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдпреВрдЯреНрдпреВрдм рдкрд░ рдПрдХ рд╡реАрдбрд┐рдпреЛ рджреЗрдЦрдХрд░ рдХреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреЛ рдЖрдо рд▓рд┐рд╕реНрдк рдкрд░ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред



рдЖрдЬ рдореИрдВ рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рджреЗрд╡ рд╡рд╛рддрд╛рд╡рд░рдг рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПред 2018 рдореЗрдВ, рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реЛ рдЧрдпрд╛, рд▓рдЧрд╛рддрд╛рд░ рдЯреНрдпреВрдирд┐рдВрдЧ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред


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


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


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


рд░реЛрдЬрд╡реЗрд▓ рдЖрдо рд▓рд┐рд╕реНрдк рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИред рдЬрд┐рд╕рдореЗрдВ рд╡рд╣ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдкреВрд░реНрд╡-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ Emacs рдХреЛ рдХреИрд╕реЗ рдЪрд▓рд╛рдирд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╣реИред


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


рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк OSX рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ


brew install roswell emacs 

рд╢рд░рд╛рдм рдХреА рднрдареНрдареА рдХреЗ рдмрд╛рдж рдбрд┐рд╕реНрдХ рдХреЛ рдЬрдВрдЧ рд▓рдЧрд╛ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЕрдкрдиреА рдЬрд░реВрд░рдд рдХреА рд╕рднреА рдЪреАрдЬреЗрдВ рдбрд╛рд▓ рджреЗрддрд╛ рд╣реИ, рдмрд╕ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рджреМрдбрд╝реЗрдВ


 ros run 

рдпрд╣ рдХрдорд╛рдВрдб рдЖрдкрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ SBCL рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рджреЗрдЧреА рдФрд░ рд▓рд┐рд╕реНрдк рдЙрддреНрддрд░ рд╢реБрд░реВ рдХрд░реЗрдЧреА, рдЬрд╣рд╛рдВ рдЖрдк рдХреЛрдб рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:



рд▓реЗрдХрд┐рди рдпрд╣ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЗрддрдирд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рддреЛ рдЪрд▓реЛ рдкреВрд░реНрдг рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП Emacs рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:


 ros emacs 

рдЯреАрдо рдХрдВрд╕реЛрд▓ рдореЗрдВ Emacs рд▓реЙрдиреНрдЪ рдХрд░реЗрдЧреА рдФрд░ рдХреЙрдорди рд▓рд┐рд╕реНрдк рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ Quicklisp рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдЧреАред
рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдЬрд╛рд░реА рд░рдЦреЗрдВ, рдЪрд▓реЛ рдЯрд░реНрдорд┐рдирд▓, рдПрдордПрд╕реАрдПрд╕ рдФрд░ рдУрдПрд╕рдПрдХреНрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╡реЗ рдПрдХ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВред


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ OSX рдФрд░ iTerm рдореЗрдВ рдХреБрдЫ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ


CapsLock рдХреЛ рдХрдВрдЯреНрд░реЛрд▓ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░реЗрдВред Emacs рдореЗрдВ, рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд╣реАрдВ рдирд╣реАрдВ:



рдлрд┐рд░ рдорд┐рд╢рдирдХрдВрдЯреНрд░реЛрд▓ рдХреЗ рд╢реЙрдЯреНрд╕ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рдФрд░ рддреАрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЬреБрдбрд╝реЗ рд╕рднреА рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ:



рдлрд┐рд░ iTerm2 рдбрд╛рд▓реЗрдВ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ Esc +: рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ Alt рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ:



рдЙрд╕рдХреЗ рдмрд╛рдж, Emacs, ~/.emacs.d/init.el рд▓рд┐рдП рдПрдХ рдиреНрдпреВрдирддрдо рд╡рд┐рдиреНрдпрд╛рд╕ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:


 (package-initialize) (require 'package) (add-to-list 'package-archives '("MELPA" . "http://melpa.milkbox.net/packages/") t) (defun install-package (package) (unless (package-installed-p package) (package-refresh-contents) (package-install package))) (install-package 'paredit) (install-package 'expand-region) (defun setup-lisp-mode () (require 'paredit) (paredit-mode) (define-key paredit-mode-map (kbd "Cw") 'paredit-backward-kill-word)) (add-hook 'lisp-mode-hook 'setup-lisp-mode) (add-hook 'emacs-lisp-mode-hook 'setup-lisp-mode) ;;  Cw           ;;  kill-region (global-set-key (kbd "Cw") 'backward-kill-word) ;;      kmacro- (global-set-key (kbd "Cx Ck") 'kill-region) ;;  indent-new-comment-line (global-set-key (kbd "Mj") (lambda () (interactive) (join-line -1))) ;;    (global-set-key (kbd "Cc rs") 'replace-string) (global-set-key (kbd "Cc rr") 'replace-regexp) ;;    emacs    ;;      =,   ;;    . (global-set-key (kbd "Cc =") 'er/expand-region) ;;      , ;;        (global-set-key (kbd "Cc c") 'comment-or-uncomment-region) (global-set-key (kbd "Cc C-\\") 'goto-last-change) (setq custom-file "~/.emacs.d/customizations.el") (when (file-exists-p custom-file) (load custom-file)) 

рдЙрд╕рдХреЗ рдмрд╛рдж, рдлрд┐рд░ рд╕реЗ рдЖрд░рдПрд╕реА рдПрдордПрд╕реАрдПрд╕ рдЪрд▓рд╛рдПрдВ, Alt-X рджрдмрд╛рдПрдВ рдФрд░ slime рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░реЗрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рд▓рд┐рд╕реНрдк рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдорд┐рд▓рддреА рд╣реИ:



рдЕрдм рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ


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


Emacs рдореЗрдВ server.lisp рдлрд╝рд╛рдЗрд▓ ( Cx Cf server.lisp ) рдЦреЛрд▓реЗрдВ рдФрд░ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред рдХреБрдЫ рдЗрд╕ рддрд░рд╣:



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


рдпрд╣рд╛рдБ рдЖрд▓рд╕реА рдХреЗ рд▓рд┐рдП рдкреВрд░рд╛ рдХреЛрдб рд╣реИ:


 ;; Micro-framework for building API (ql:quickload :ningle) ;; Now ningle is installed and we need to install a clack which is analog of WSGI ;; stack from Python ;; I've pressed Cc Cc to eval this form (ql:quickload :clack) ;; To parse json: (ql:quickload :jonathan) (defvar *app* (make-instance 'ningle:<app>)) (setf (ningle:route *app* "/") ;; in case, if you need to parse or serialize JSON, ;; use Jonthan library. (jonathan:to-json '(:foo 100500))) (defvar *server* nil "This variable will store currently running server instance.") (defun start () (if *server* (format t "Server already started") (setf *server* (clack:clackup *app*)))) (defun stop () (if *server* (clack:stop *server*) (format t "Server is not running"))) 

рд▓рд┐рд╕реНрдк рдореЗрдВ, рдирд┐рд░реНрдорд╛рдг рдЬреЛ рдмреНрд░реИрдХреЗрдЯ рдХреЗ рдЕрдВрджрд░ рд╣реЛрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ "рдлрд╝реЙрд░реНрдо" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реЗ рдкреНрд░рдкрддреНрд░ рдЬреЛ рд╢реАрд░реНрд╖ рдкрд░ рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рдирд╣реАрдВ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рд╢реАрд░реНрд╖-рд╕реНрддрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕реЗ рдлреЙрд░реНрдо рдХреЛ Cc Cc рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдХрд░реНрд╕рд░ рдРрд╕реЗ рдлреЙрд░реНрдо рдХреЗ рдЕрдВрджрд░ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк ontrol рдкрд░ CapsLock рдХреЛ CapsLock рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рдВрдпреЛрдЬрди рдкреНрд░реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред


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


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

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


All Articles