рдорди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛, рд╣рд╛рде рдирд╣реАрдВ: Emacs рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд┐рдВрдЧ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг

рдХрд╣рд╛рдиреА


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

рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдпреВрдирд┐рдХреНрд╕ рдкрд░ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдереА рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореЗрд░реЗ рд╡рд╛рддрд╛рд╡рд░рдг рдФрд░ рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдмреАрдЪ рдХреБрдЫ рднреА рд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рдерд╛ред

рдирд┐рд╖реНрдХрд░реНрд╖ рдПрдХ рдерд╛: рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкрд╛рдП рдЧрдП рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ GNU рдСрдЯреЛрдХреЙрдиреНрдлрд╝ рдореЗрдХрдлрд╛рдЗрд▓ рдореЗрдВ: тАЬRM=/usr/local/bin/rmтАЭ рдФрд░ тАЬ${RM} -vf fooтАЭ ред

рдХрд╛рдо рд▓рдЧрднрдЧ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ 3 рдРрд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдВ рдЬреЛ рдмрд╣реБрдд рд╕рдорд╛рди рджрд┐рдЦрддреА рд╣реИрдВ рдФрд░ рдореИрдВ рдмрд┐рд▓реНрдХреБрд▓ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдЗрди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдиреЛрдВ рдХреЛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ ... рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ Emacs рдореЗрдВ рдирдП ' рд╕реНрдХреНрд░реИрдЪ * рдмрдлрд░ ' рдХреЗ ' рд░рд┐рдкреНрд▓реЗ -рд╕реНрдЯреНрд░рд┐рдВрдЧ' рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдмрд╕ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛:

 (defun foo () (interactive) (let ((begin (region-beginning)) (end (region-end))) (mapcar #'(lambda (p) (replace-string (format "%s " (cadr p)) (format "${%s} " (car p)) nil begin end)) '((GNUTAR tar) (GUNZIP gunzip) (GZIP gzip) (GMAKE gmake) (AUTORECONF autoreconf) (MKDIR mkdir) (ECHO echo) (CP cp) (FIND find) (RM rm) (TEST test) (LN ln))))) 

рдФрд░ рд╡рд╣ рд╕рдм рд╣реИ!

рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ, рдпрд╣ рдХреЛрдб рдХреНрдпрд╛ рд╣реИ


рдпрд╣ `рдлреВ ' рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдЬрд┐рд╕реЗ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЕрдВрддрдГрдХреНрд░рд┐рдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдкрд╛рда рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдФрд░ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдореБрдЦреНрдп рднрд╛рдЧ рд╕реЗ рдирд╣реАрдВред рдпрд╣ рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП 'рд░рд┐рдкреНрд▓реЗ-рд╕реНрдЯреНрд░рд┐рдВрдЧ' рдлрд╝рдВрдХреНрд╢рди рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ:
  ((GNUTAR tar) (GUNZIP gunzip) (GZIP gzip) (GMAKE gmake) (AUTORECONF autoreconf) (MKDIR mkdir) (ECHO echo) (CP cp) (FIND find) (RM rm) (TEST test) (LN ln)) 

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдкрд╛рда рдореЗрдВ рдкрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рджреВрд╕рд░реЗ рдореВрд▓реНрдп рдХреА рдЬрдЧрд╣ рдкрд╣рд▓реЗ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "GNUTAR" ) рдХреЗ рд╕рд╛рде "GNUTAR" "tar" ред

рдЗрд╕рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, 'рдлреВ' рдлрд╝рдВрдХреНрд╢рди рдЪрдпрдирд┐рдд рдХреНрд╖реЗрддреНрд░ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЗрд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП: рдпреЗ 'рдХреНрд╖реЗрддреНрд░-рд╢реБрд░реБрдЖрдд' рдФрд░ 'рдХреНрд╖реЗрддреНрд░-рдЕрдВрдд' рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рд╣реИрдВред

рдлрд┐рд░ `рдореИрдкрдХрд╛рд░ ' рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╕реВрдЪреА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рд▓реИрдореНрдмрдбрд╛ (рдкреА) рдХреНрд▓реЛрдЬрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред

рдХреНрд▓реЛрдЬрд░ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдХрд╛рд░реНрдп рдкреА рдЪрд░ рдХреЛ рдШрдЯрдХреЛрдВ рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдкреНрд▓реЗ -рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реИред

рдЙрдкрд╕рдВрд╣рд╛рд░


рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ `рдореИрдк ' рдкрд░рд┐рд╡рд╛рд░ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдордирдорд╛рдиреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕реВрдЪреА рдореЗрдВ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░, рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рдмрдЬрд╛рдп, рджреЛ рдореВрд▓реНрдп рд╕реНрдкрд╛рдЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: (GNUTAR GUNZIP GZIP ...) (tar gunzip gzip ...) (GNUTAR GUNZIP GZIP ...) (tar gunzip gzip ...) , рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдРрд╕рд╛ рд╕рдВрдЧрдарди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЛ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдирд┐рд╣рд┐рдд рд╕рдВрдмрдВрдзреЛрдВ рдХреЗ рдХрд╛рд░рдг рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ, рдЬрдмрдХрд┐ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХрд╛ рд╕рдВрдмрдВрдз рдЕрдзреАрди рд╕реВрдЪреА рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖


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

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


All Articles