рдЬрдм рдореИрдВ C-c C-l
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЖрд░рдИрдкреАрдПрд▓ рдЦреЛрд▓рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдЬреЛ рд╡рд┐рдВрдбреЛ рдмрдирд╛рддрд╛ рд╣реИ рд╡рд╣ рд╡рд┐рд╢реЗрд╖ рд▓рдЧрддрд╛ рд╣реИ (рдЧрд╣рд░рд╛ рдкреГрд╖реНрдарднреВрдорд┐, рдмрдВрдж рд╣реЛрдиреЗ рдкрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреА рд╣реИ, ...)
рдпрд╣ рд╣рдореЗрд╢рд╛ рдореЗрд░реА рд╕реНрдХреНрд░реАрди рдХреЛ рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЬреЛ рдХрднреА-рдХрднреА рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ, рдХрднреА-рдХрднреА рдкрд░реЗрд╢рд╛рди рд╣реЛрддрд╛ рд╣реИред Emacs рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рдЗрд╕ рд╡рд┐рдВрдбреЛ рдХреЛ рджрд╛рдИрдВ рдУрд░ рд▓реЗ рдЬрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред
рдореИрдВрдиреЗ рд╕реНрд╡рд┐рдЪ-рдмрдлрд░ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рджреВрд╕рд░реЗ рдлреНрд░реЗрдо рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдореВрд▓ рдХреЛ рдмрдВрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдорд╛рд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдмрдлрд░ рд╡рд╛рд▓реЗ рд╕рднреА рдлреНрд░реЗрдо рд╣реИрдВред
рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рд╕рдВрдХреЗрдд рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдмрдлрд░ рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯреЗрдВ рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП? :(
рдзрдиреНрдпрд╡рд╛рдж!
рд╣рдореНрдо, рдпрд╣рд╛рдБ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЧрддрд┐рд╢реАрд▓ рднрд╛рдЧ рд╣реИрдВред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ C-c C-l
рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реИред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдореЛрдб рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП +eval/repl
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдбреВрдо рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╢реЗрд╖ рдмрдлрд░ рдХреА рддрд░рд╣ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдлрд░ рдХрд╛ рдЗрд▓рд╛рдЬ рдХрд░реЗрдЧрд╛ред
рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рджреЛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЪрд░ shackle-default-alignment
рдФрд░ shackle-rules
, рдЬреЛ Emacs рдХреЛ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рдирджрдВрдб рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдВрдбреЛ рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯреЗрдВред
shackle-rules
рдХреЗ рдЕрдВрдд рдореЗрдВ рджреЛ рдХреИрдЪ-рдСрд▓ рдирд┐рдпрдо рд╣реИрдВ:
(set! :popup
'("^\\*" :regexp t :noselect t :autokill t)
'("^ \\*" :regexp t :size 12 :noselect t :autokill t :autoclose t))))
рдпрд╣рд╛рдВ рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ :autokill t
(рдЬреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдПрдХ рдмрдлрд░ рдФрд░ рдЙрд╕рд╕реЗ рдЬреБрдбрд╝реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдорд╛рд░ рджрд┐рдпрд╛ рдЬрд╛рдП) рдФрд░ рдЪреВрдВрдХрд┐ рдХреЛрдИ :align
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рдпрд╣ shackle-default-alignment
рд╕рд╣рд╛рд░рд╛ рд▓реЗрддрд╛ рд╣реИ, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 'below
ред
рддреЛ, рд╣рдо рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ?
рдпрд╣рд╛рдБ рддреАрди рддрд░реАрдХреЗ рд╣реИрдВ:
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдмрд╕ рдПрдХ рдУрд╡рд░рд░рд╛рдЗрдбрд┐рдВрдЧ рдирд┐рдпрдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:
(set! :popup "*my-repl-buffer*" :align 'left :noesc t)
рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП M-x doom/describe-setting RET :popup
рджреЗрдЦреЗрдВред
рдЕрдкрдиреЗ рдЙрддреНрддрд░ рдореЗрдВ +eval-repl-mode
рдорд╛рдореВрд▓реА рдореЛрдб рд╕рдХреНрд╖рдо рдХрд░реЗрдВ:
(add-hook 'inferior-python-mode-hook #'+eval-repl-mode)
рдЖрдкрдХреЛ рдпрд╣ рдкреЙрдкрдЕрдк рдирд┐рдпрдо рдореЙрдбреНрдпреВрд▓/рдлреАрдЪрд░/eval/config.el рдореЗрдВ рдорд┐рд▓реЗрдЧрд╛ :
(set! :popup
'(:custom (lambda (b &rest _) (buffer-local-value '+eval-repl-mode b)))
:size 16 :noesc t)
C-c C-l
рдХреЛ +eval/repl
рдмрд╛рдЗрдВрдб рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреЗ рдЙрддреНрддрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЕрдзрд┐рдХрд╛рдВрд╢ рдореЛрдб рдореЗрдВ рдЙрдЪрд┐рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрддреЗ рд╣реИрдВред рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЗ рдЗрдЪреНрдЫрд┐рдд рдЙрддреНрддрд░ рдХреЛ рдирд╣реАрдВ рдЦреЛрд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЖрдк :repl
рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдкреНрд░рдореБрдЦ-рдореЛрдб-> рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕рдВрдмрджреНрдзрддрд╛ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ
(set! :repl 'python-mode #'+python/repl)
рдлрд╝рдВрдХреНрд╢рди :repl рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдмрдлрд░ рдХреЛ рд░рд┐рдкреНрд▓рд╛рдИ рдпреБрдХреНрдд рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЙрдореНрдореАрдж рд╣реИ рдХреА рд╡реЛ рдорджрдж рдХрд░рджреЗ!
рдУрд╣, рдореИрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛: рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд▓рд╛рдЗрд╡ рдкреЙрдкрдЕрдк рд╡рд┐рдВрдбреЛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ (рдореБрдЭреЗ рдЗрд╕рдХреА рдХрднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)ред рдРрд╕рд╛ рдХреБрдЫ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд╡рд╣ рд╕рд╛рд░реА рдорджрдж рдЪрд╛рд╣рд┐рдП рдЬреЛ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдП!
рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ intero
REPL рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рдерд╛, рдЬрд┐рд╕реЗ intero-repl-load
рдирд╛рдордХ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдореИрдВрдиреЗ рд╕рд╛рде рдЬрд╛рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛:
(set! :popup "^\\*intero:" :regexp t :align 'right :size 80)
рдореЗрд░реЗ modules/private/ptival/init.el
, рдПрдХ рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд┐рдпрд╛!
рдореБрдЭреЗ рдпрд╣ рд╕рдм рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдЙрдЪрд┐рдд рд╕рдордп рдореЗрдВ рдЕрдкрдиреЗ рдЖрдк рд╕рдордЭ рд▓рд┐рдпрд╛ рд╣реЛрдЧрд╛! рдореИрдВ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╣рдореНрдо, рдпрд╣рд╛рдБ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЧрддрд┐рд╢реАрд▓ рднрд╛рдЧ рд╣реИрдВред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕
C-c C-l
рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реИред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдореЛрдб рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП+eval/repl
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдбреВрдо рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╢реЗрд╖ рдмрдлрд░ рдХреА рддрд░рд╣ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдлрд░ рдХрд╛ рдЗрд▓рд╛рдЬ рдХрд░реЗрдЧрд╛редрдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рджреЛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЪрд░
shackle-default-alignment
рдФрд░shackle-rules
, рдЬреЛ Emacs рдХреЛ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рдирджрдВрдб рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдВрдбреЛ рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯреЗрдВредshackle-rules
рдХреЗ рдЕрдВрдд рдореЗрдВ рджреЛ рдХреИрдЪ-рдСрд▓ рдирд┐рдпрдо рд╣реИрдВ:рдпрд╣рд╛рдВ рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ
:autokill t
(рдЬреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдПрдХ рдмрдлрд░ рдФрд░ рдЙрд╕рд╕реЗ рдЬреБрдбрд╝реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдорд╛рд░ рджрд┐рдпрд╛ рдЬрд╛рдП) рдФрд░ рдЪреВрдВрдХрд┐ рдХреЛрдИ:align
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рдпрд╣shackle-default-alignment
рд╕рд╣рд╛рд░рд╛ рд▓реЗрддрд╛ рд╣реИ, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ'below
редрддреЛ, рд╣рдо рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ?
рдпрд╣рд╛рдБ рддреАрди рддрд░реАрдХреЗ рд╣реИрдВ:
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдмрд╕ рдПрдХ рдУрд╡рд░рд░рд╛рдЗрдбрд┐рдВрдЧ рдирд┐рдпрдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:
рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП
M-x doom/describe-setting RET :popup
рджреЗрдЦреЗрдВредрдЕрдкрдиреЗ рдЙрддреНрддрд░ рдореЗрдВ
+eval-repl-mode
рдорд╛рдореВрд▓реА рдореЛрдб рд╕рдХреНрд╖рдо рдХрд░реЗрдВ:(add-hook 'inferior-python-mode-hook #'+eval-repl-mode)
рдЖрдкрдХреЛ рдпрд╣ рдкреЙрдкрдЕрдк рдирд┐рдпрдо рдореЙрдбреНрдпреВрд▓/рдлреАрдЪрд░/eval/config.el рдореЗрдВ рдорд┐рд▓реЗрдЧрд╛ :
C-c C-l
рдХреЛ+eval/repl
рдмрд╛рдЗрдВрдб рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреЗ рдЙрддреНрддрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЕрдзрд┐рдХрд╛рдВрд╢ рдореЛрдб рдореЗрдВ рдЙрдЪрд┐рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрддреЗ рд╣реИрдВред рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЗ рдЗрдЪреНрдЫрд┐рдд рдЙрддреНрддрд░ рдХреЛ рдирд╣реАрдВ рдЦреЛрд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЖрдк:repl
рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдкреНрд░рдореБрдЦ-рдореЛрдб-> рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕рдВрдмрджреНрдзрддрд╛ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ(set! :repl 'python-mode #'+python/repl)
рдлрд╝рдВрдХреНрд╢рди :repl рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдмрдлрд░ рдХреЛ рд░рд┐рдкреНрд▓рд╛рдИ рдпреБрдХреНрдд рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЙрдореНрдореАрдж рд╣реИ рдХреА рд╡реЛ рдорджрдж рдХрд░рджреЗ!