рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ Quora рдкрд░ рдореИрдВрдиреЗ рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рдерд╛:
рдХреИрд╕реЗ рд▓рд╛рдЯреЗрдХреНрд╕ рдкрд░ рдЧрдгрд┐рдд рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛рди рдиреЛрдЯреНрд╕ рдХреЗ рд╕рд╛рде рд░рдЦрд╛ рдЬрд╛рдП ред рд╡рд╣рд╛рдВ рдореИрдВрдиреЗ рд╡рд┐рдо рдФрд░ рдЗрдВрдХрд╕реНрдХреЗрдк (рд░реЗрдЦрд╛рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд▓рд╛рдЯреЗрдХреНрд╕ рдореЗрдВ рдореЗрд░реЗ рдиреЛрдЯ рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЛ рд╕рдордЭрд╛рдпрд╛ред рд▓реЗрдХрд┐рди рддрдм рд╕реЗ, рдмрд╣реБрдд рдХреБрдЫ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдХрдИ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдпрд╣ рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╕реЗ рдкрд╣рд▓рд╛ рд╣реИред
рдореИрдВрдиреЗ рдПрдХ рдЧрдгрд┐рдд рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рджреВрд╕рд░реЗ рд╕реЗрдореЗрд╕реНрдЯрд░ рдореЗрдВ рдиреЛрдЯреНрд╕ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП LaTeX рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдФрд░ рддрдм рд╕реЗ рдореИрдВрдиреЗ 1700 рд╕реЗ рдЕрдзрд┐рдХ рдкреГрд╖реНрда рд▓рд┐рдЦреЗ рд╣реИрдВред рд╕рд╛рд░рд╛рдВрд╢ рдХреНрдпрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:



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

рдмрд╛рдИрдВ рдУрд░ рд╡рд┐рдо рд╣реИ, рдФрд░ рджрд╛рдИрдВ рдУрд░
рдЬрд╝рдереБрд░рд╛ рдкреАрдбреАрдПрдл рджрд░реНрд╢рдХ рд╣реИ, рдЬреЛ рд╡рд┐рдо-рд╢реИрд▓реА рдХреАрдмреЛрд░реНрдб рд╢реЙрд░реНрдЯрдХрдЯ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЙрдмрдВрдЯреВ рдореЗрдВ
bspwm рд╡рд┐рдВрдбреЛ рдореИрдиреЗрдЬрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛
рд╣реВрдВ ред рдПрдХ рдкреНрд▓рдЧрдЗрди рдХреЗ рд░реВрдк рдореЗрдВ LaTeX рдиреЗ
vimtex рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ред рдпрд╣ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ, рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛, рд╕рд┐рдВрдЯреЗрдХреНрд╕, рдЖрджрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рд╡рд┐рдо-рдкреНрд▓рдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
, рдореИрдВрдиреЗ рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛:
Plug 'lervag/vimtex'
let g:tex_flavor='latex'
let g:vimtex_view_method='zathura'
let g:vimtex_quickfix_mode=0
set conceallevel=1
let g:tex_conceal='abdmg'
рдЕрдВрддрд┐рдо рджреЛ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рднреЗрд╕ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рддреА рд╣реИрдВред рдпрд╣ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬрд┐рд╕рдореЗрдВ LaTeX рдХреЛрдб рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдЕрджреГрд╢реНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдХрд░реНрд╕рд░ рдЗрд╕ рд▓рд╛рдЗрди рдкрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк
\ [
,
\]
,
$
рдЫрд┐рдкрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдЗрддрдиреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВ, рдЬреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рдмреЗрд╣рддрд░ рдЕрд╡рд▓реЛрдХрди рджреЗрддрд╛ рд╣реИред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдПрдиреАрдореЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рдЕрдиреБрд╕рд╛рд░
\bigcap
,
\bigcap
рд╕рд╛рде
\bigcap
рд╕рд╛рде
\bigcap
рдХреЛ рднреА рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ:

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

рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдЧрддрд┐рд╢реАрд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ: рдЬрдм рдореИрдВ
today
рдЯрд╛рдЗрдк рдХрд░рддрд╛ рд╣реВрдВ рдФрд░
Tab
рджрдмрд╛рддрд╛ рд╣реВрдВ, рддреЛ
today
рдХрд╛ рд╢рдмреНрдж рд╡рд░реНрддрдорд╛рди рддрд┐рдерд┐ рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░
box
-
Tab
рдПрдХ рдХреНрд╖реЗрддреНрд░ рдмрди рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрдХрд╛рд░ рдореЗрдВ рдмрдврд╝рддрд╛ рд╣реИред


рдЖрдк рдПрдХ рд╕реНрдирд┐рдкреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рджреВрд╕рд░реЗ рдХреЗ рдЕрдВрджрд░ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

UltiSnips рдХреЗ рд╕рд╛рде рд╕реНрдирд┐рдкреЗрдЯ рдмрдирд╛рдирд╛
рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ
UltiSnips рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛
рд╣реВрдВ ред рдпрд╣рд╛рдБ рдЗрд╕рдХрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ:
Plug 'sirver/ultisnips' let g:UltiSnipsExpandTrigger = '<tab>' let g:UltiSnipsJumpForwardTrigger = '<tab>' let g:UltiSnipsJumpBackwardTrigger = '<s-tab>'
рд╕реНрдирд┐рдкреЗрдЯ
sign
рд▓рд┐рдП рдХреЛрдб:
snippet sign "Signature" Yours sincerely, Gilles Castel endsnippet
рдбрд╛рдпрдирд╛рдорд┐рдХ рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП, рдЖрдк рдмреИрдХрдХреЙрдЯреНрд╕ рдХреЗ рдмреАрдЪ рдХреЛрдб рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдХреЗ рдлреИрд▓рдиреЗ рдкрд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣рд╛рдВ рдореИрдВрдиреЗ рд╡рд░реНрддрдорд╛рди рддрд┐рдерд┐ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛:
date + %F
snippet today "Date" `date +%F` endsnippet
`!p ... `
рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░, рдЖрдк рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред
box
рд╕реНрдирд┐рдкреЗрдЯ рдХреЗ рд▓рд┐рдП рдХреЛрдб рджреЗрдЦреЗрдВ:
snippet box "Box" `!p snip.rv = 'тФМ' + 'тФА' * (len(t[1]) + 2) + 'тФР'` тФВ $1 тФВ `!p snip.rv = 'тФФ' + 'тФА' * (len(t[1]) + 2) + 'тФШ'` $0 endsnippet
рдЗрд╕ рдХреЛрдб рдХреЗ рдмрдЬрд╛рдп,
snip.rv
рдЪрд░ рдХрд╛ рдорд╛рди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рдПрдЧрд╛ред рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рдЕрдВрджрд░, рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реНрдирд┐рдкреЗрдЯ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
t[1]
рдкрд╣рд▓реЗ рдЯреИрдм рдХреЗ рд╕реНрдерд╛рди рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ
fn
, рдЖрджрд┐ред
рд▓рд╛рдЯреЗрдХреНрд╕ рд╕реНрдирд┐рдкреЗрдЯреНрд╕
рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдХрд╛рдо рдореЗрдВ рдХрд╛рдлреА рддреЗрдЬреА рд▓рд╛рддреЗ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреБрдЫ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╕реНрдирд┐рдкреЗрдЯреНрд╕ред рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдкрд░реНрдпрд╛рд╡рд░рдг
рдПрдХ рд╡рд╛рддрд╛рд╡рд░рдг рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ
beg
ред рдлрд┐рд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдирд╛рдо, рдЬреЛ
\end{}
рдХрдорд╛рдВрдб рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИред
Tab
рджрдмрд╛рдиреЗ рдкрд░ рдХрд░реНрд╕рд░ рдЕрдВрджрд░ рд╣реЛрддрд╛ рд╣реИред

рдХреЛрдб рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:
snippet beg "begin{} / end{}" bA \begin{$1} $0 \end{$1} endsnippet
b
рд╕рд┐рдВрдмрд▓ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдРрд╕рд╛ рд╕реНрдирд┐рдкреЗрдЯ рдХреЗрд╡рд▓ рдПрдХ рд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ,
A
рдорддрд▓рдм рд╣реИ рдСрдЯреЛрдореИрдЯрд┐рдХ рдПрдХреНрд╕рдкреЗрдВрд╢рди, рдпрд╛рдиреА рдЖрдкрдХреЛ
Tab
рджрдмрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рдЯреИрдм рдЬрд╣рд╛рдБ рдЖрдк
Tab
рджрдмрд╛рдХрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░
Shift
+
Tab
рдХреЛ
$1
,
$2
, ... рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реВрдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдмрд╛рдж рдореЗрдВ
$0
рдХреЛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрдирд▓рд╛рдЗрди рдФрд░ рдкреНрд░рджрд░реНрд╢рди рд╕реВрддреНрд░
рджреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдирд┐рдкреЗрдЯреНрд╕
mk
рдФрд░
dm
, рдЬреЛ рдЧрдгрд┐рдд рдореЛрдб рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВред рдПрдореНрдмреЗрдбреЗрдб рд╕реВрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛, рдкреНрд░рджрд░реНрд╢рд┐рдд рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛ред

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

рдЗрд╕ рд╕реНрдирд┐рдкреЗрдЯ рдХрд╛ рдХреЛрдб рд╣реИ:
snippet mk "Math" wA $${1}$`!p if t[2] and t[2][0] not in [',', '.', '?', '-', ' ']: snip.rv = ' ' else: snip.rv = '' `$2 endsnippet
рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ
W
рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕реНрдирд┐рдкреЗрдЯ рдХреЗрд╡рд▓ рд╢рдмреНрдж рд╕реАрдорд╛рдУрдВ рдкрд░ рд╡рд┐рд╕реНрддреГрдд рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
hellomk
рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдФрд░
hello mk
рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдкреНрд░рджрд░реНрд╢рд┐рдд рдлрд╝рд╛рд░реНрдореБрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдирд┐рдкреЗрдЯ рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рдлреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рднреА рд╣реИред рдпрд╣ рд╣рдореЗрд╢рд╛ рдПрдХ рдмрд┐рдВрджреБ рдХреЗ рд╕рд╛рде рд╕рдореАрдХрд░рдгреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред

<snippet dm "Math" wA \[ $1 .\] $0 endsnippet
рд╕рдмрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд╕реБрдкрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд░реНрдг
рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧреА рд╕реНрдирд┐рдкреЗрдЯ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╣реИред рдпрд╣
a1
рд╕реЗ
a_1
рдФрд░
a_12
рд╕реЗ
a_{12}
ред

рдЗрд╕ рд╕реНрдирд┐рдкреЗрдЯ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдПрдХ рдЯреНрд░рд┐рдЧрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЬрдм рдЖрдк рдХрд┐рд╕реА рд╡рд░реНрдг рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЦрдВрдб рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж
[A-Za-z]\d
, рдпрд╛
_
рдФрд░ рджреЛ рдЕрдВрдХреЛрдВ рдХреЗ рдмрд╛рдж рдХрд╛ рд╡рд░реНрдг:
[A-Za-z]_\d\d
рд░реВрдк рдореЗрдВ рдХреВрдЯрдмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
snippet '([A-Za-z])(\d)' "auto subscript" wrA `!p snip.rv = match.group(1)`_`!p snip.rv = match.group(2)` endsnippet snippet '([A-Za-z])_(\d\d)' "auto subscript2" wrA `!p snip.rv = match.group(1)`_{`!p snip.rv = match.group(2)`} endsnippet
рдЬрдм рдЖрдк рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рд╕рдореВрд╣ рдореЗрдВ рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
(\d\d)
, рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдкрд╛рдпрдерди рдореЗрдВ
match.group(i)
рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдирд┐рдкреЗрдЯ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реБрдкрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд░реНрдг рдХреЗ рд▓рд┐рдП, рдореИрдВ
td
рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ
^{}
рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдмрд╕реЗ рдЖрдо (рд╡рд░реНрдЧ, рдШрди, рдФрд░ рдХрдИ рдЕрдиреНрдп) рдХреЗ рд▓рд┐рдП, рдЕрд▓рдЧ рд╕реНрдирд┐рдкреЗрдЯ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐
sr
,
cb
рдФрд░
comp
ред

snippet sr "^2" iA ^2 endsnippet snippet cb "^3" iA ^3 endsnippet snippet compl "complement" iA ^{c} endsnippet snippet td "superscript" iA ^{$1}$0 endsnippet
рдЕрдВрд╢реЛрдВ
рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдЕрдВрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╡рд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░рддрд╛ рд╣реИ:
//
тЖТ
\frac{}{}
3/
тЖТ
\frac{3}{}
4\pi^2/
тЖТ
\frac{4\pi^2}{}
(1 + 2 + 3)/
тЖТ
\frac{1 + 2 + 3}{}
(1+(2+3)/)
тЖТ
(1 + \frac{2+3}{})
(1 + (2+3))/
тЖТ
\frac{1 + (2+3)}{}

рдкрд╣рд▓реЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд░рд▓ рдХреЛрдб:
snippet // "Fraction" iA \\frac{$1}{$2}$0 endsnippet
рджреВрд╕рд░реЗ рдФрд░ рддреАрд╕рд░реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐
4ac/
,
4ac/
,
6\pi^2/
,
a_2/
, рдЖрджрд┐ рдХреЗ рдЕрдиреБрд░реВрдк рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рдорджрдж рд╕реЗ рд╣реЛрддреЗ рд╣реИрдВред
snippet '((\d+)|(\d*)(\\)?([A-Za-z]+)((\^|_)(\{\d+\}|\d))*)/' "Fraction" wrA \\frac{`!p snip.rv = match.group(1)`}{$1}$0 endsnippet
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛рдлреА рд▓рдВрдмреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдПрдХ рдЖрд░реЗрдЦ рд╣реИ рдЬрд┐рд╕реЗ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

рдЪреМрдереЗ рдФрд░ рдкрд╛рдВрдЪрд╡реЗрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕реНрдирд┐рдкреЗрдЯ рд╕рдВрдмрдВрдзрд┐рдд рдмреНрд░реИрдХреЗрдЯ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ UltiSnips regex рдЗрдВрдЬрди рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛:
priority 1000 snippet '^.*\)/' "() Fraction" wrA `!p stripped = match.string[:-1] depth = 0 i = len(stripped) - 1 while True: if stripped[i] == ')': depth += 1 if stripped[i] == '(': depth -= 1 if depth == 0: break; i -= 1 snip.rv = stripped[0:i] + "\\frac{" + stripped[i+1:-1] + "}" `{$1}$0 endsnippet
рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдПрдХ рд╕реНрдирд┐рдкреЗрдЯ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдЪрдпрди рдХреЛ рдПрдХ рдЕрдВрд╢ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдЯреЗрдХреНрд╕реНрдЯ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ,
Tab
рджрдмрд╛рдПрдБ, рдЯрд╛рдЗрдк рдХрд░реЗрдВ
/
рдФрд░ рдлрд┐рд░
Tab
ред

рдХреЛрдб
${VISUAL}
рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреА рдкрд╕рдВрдж рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред
snippet / "Fraction" iA \\frac{${VISUAL}}{$1}$0 endsnippet
рд╕рд┐рдореНрдкреА рдФрд░ рдЧрдгрд┐рддрдЬреНрдЮ
рдПрдХ рдФрд░ рд╢рд╛рдВрдд рд▓реЗрдХрд┐рди рдХрдо рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕реНрдирд┐рдкреЗрдЯ рдЧрдгрд┐рдд рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рд▓рд┐рдП
рд╕рд╣рд╛рдиреБрднреВрддрд┐ рд╕реЗ рдЪрд▓рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
sympy
Tab
рд╡рд┐рд╕реНрддрд╛рд░
sympy | sympy
рд╕реЗ
sympy | sympy
sympy | sympy
, рдФрд░
sympy 1 + 1 sympy
Tab
2
рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИред

snippet sympy "sympy block " w sympy $1 sympy$0 endsnippet priority 10000 snippet 'sympy(.*)sympy' "evaluate sympy" wr `!p from sympy import * x, y, z, t = symbols('xyz t') k, m, n = symbols('km n', integer=True) f, g, h = symbols('fg h', cls=Function) init_printing() snip.rv = eval('latex(' + match.group(1).replace('\\', '') \ .replace('^', '**') \ .replace('{', '(') \ .replace('}', ')') + ')') ` endsnippet
рдЧрдгрд┐рддрдЬреНрдЮ рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдРрд╕рд╛ рд╣реА рд╕рдВрднрд╡ рд╣реИ:

priority 1000 snippet math "mathematica block" w math $1 math$0 endsnippet priority 10000 snippet 'math(.*)math' "evaluate mathematica" wr `!p import subprocess code = 'ToString[' + match.group(1) + ', TeXForm]' snip.rv = subprocess.check_output(['wolframscript', '-code', code]) ` endsnippet
рдЙрдкрд╕рд░реНрдЧ рд╕реНрдирд┐рдкреЗрдЯ
рдореБрдЭреЗ рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рд╡рд░реНрдгреЛрдВ рдХреЛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЙрдкрдпреБрдХреНрдд рдкрд╛рда рдбрд╛рд▓рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрд╕рд░реНрдЧ рд╕реНрдирд┐рдкреЗрдЯ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
phat
тЖТ
\hat{p}
рдФрд░
zbar
тЖТ
\overline{z}
ред рдПрдХ рд╕рдорд╛рди рд╕реНрдирд┐рдкреЗрдЯ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
v,.
тЖТ
\vec{v}
рдФрд░
v.,
тЖТ
\vec{v}
ред рдЕрд╡рдзрд┐ рдФрд░ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдХрд╛ рдХреНрд░рдо рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХреВрдВред рдпреЗ рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдордп рдмрдЪрд╛рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЙрд╕реА рдЧрддрд┐ рд╕реЗ рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдПрдХ рд╡реНрдпрд╛рдЦреНрдпрд╛рддрд╛ рдмреЛрд░реНрдб рдкрд░ рд▓рд┐рдЦрддрд╛ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
bar
рдФрд░
hat
рдЙрдкрд╕рд░реНрдЧ рдЕрднреА рднреА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд╕рд╛рдеред рдЗрди рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╣реИ:
priority 10 snippet "bar" "bar" riA \overline{$1}$0 endsnippet priority 100 snippet "([a-zA-Z])bar" "bar" riA \overline{`!p snip.rv=match.group(1)`} endsnippet
priority 10 snippet "hat" "hat" riA \hat{$1}$0 endsnippet priority 100 snippet "([a-zA-Z])hat" "hat" riA \hat{`!p snip.rv=match.group(1)`} endsnippet
snippet "(\\?\w+)(,\.|\.,)" "Vector postfix" riA \vec{`!p snip.rv=match.group(1)`} endsnippet
рдЕрдиреНрдп рд╕реНрдирд┐рдкреЗрдЯ
рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рд▓рдЧрднрдЧ рд╕реМ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рд╣реИрдВред рд╡реЗ рд╕рднреА
рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз
рд╣реИрдВ ред рдЙрдирдореЗрдВ рд╕реЗ рдЬреНрдпрд╛рджрд╛рддрд░ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП;
!>
\mapsto
рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ,
->
рдмрди рдЬрд╛рддрд╛
\to
, рдЖрджрд┐ред

fun
f: \R \to \R :
рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛
f: \R \to \R :
!>
тЖТ тЖТ
\mapsto
,
cc
тЖТ
\subset
ред

lim
\lim_{n \to \infty}
,
sum
тЖТ
\sum_{n = 1}^{\infty}
,
ooo
тЖТ
\infty
ред


рдХреЛрд░реНрд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдирд┐рдкреЗрдЯ
рдЕрдХреНрд╕рд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рднреА рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ
.vimrc
рдПрдХ рд╣реА рд▓рд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
set rtp+=~/current_course
рдпрд╣рд╛рдБ
current_course
рд╡рд░реНрддрдорд╛рди рдкрд╛рдареНрдпрдХреНрд░рдо рдХрд╛ рдПрдХ
рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рд╣реИ (рдХрд┐рд╕реА рдЕрдиреНрдп рд▓реЗрдЦ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ)ред рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рд╣реИ
~/current_course/UltiSnips/tex.snippets
, рдЬрд╣рд╛рдБ рдореИрдВ рдкрд╛рдареНрдпрдХреНрд░рдо рд╕реНрдирд┐рдкреЗрдЯ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдБред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд╡рд╛рдВрдЯрдо рдпрд╛рдВрддреНрд░рд┐рдХреА рдХреЗ рд▓рд┐рдП, рд╕реНрдХреЛрдирд╕ рдФрд░ рдХреАрдЯреЛ рдХреЗ рдХреНрд╡рд╛рдВрдЯрдо рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рд╣реИрдВред
<a|
тЖТ
\bra{a}
<q|
тЖТ
\bra{\psi}
|a>
тЖТ
\ket{a}
|q>
тЖТ
\ket{\psi}
\braket{a}{b}
тЖТ
\braket{a}{b}
рдЪреВрдВрдХрд┐ рдХреНрд╡рд╛рдВрдЯрдо рдореИрдХреЗрдирд┐рдХреНрд╕ рдЕрдХреНрд╕рд░
\psi
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рднреА
q
рдХреЛ рдмреНрд░реЗрдХ рдореЗрдВ
\psi
рдмрджрд▓ рджрд┐рдпрд╛ред

snippet "\<(.*?)\|" "bra" riA \bra{`!p snip.rv = match.group(1).replace('q', f'\psi').replace('f', f'\phi')`} endsnippet snippet "\|(.*?)\>" "ket" riA \ket{`!p snip.rv = match.group(1).replace('q', f'\psi').replace('f', f'\phi')`} endsnippet snippet "(.*)\\bra{(.*?)}([^\|]*?)\>" "braket" riA `!p snip.rv = match.group(1)`\braket{`!p snip.rv = match.group(2)`}{`!p snip.rv = match.group(3).replace('q', f'\psi').replace('f', f'\phi')`} endsnippet
рдкреНрд░рд╕рдВрдЧ
рдЗрди рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп, рдЖрдкрдХреЛ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╡реЗ рд╕рд╛рджреЗ рдкрд╛рда рдореЗрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рд╢рдмреНрджрдХреЛрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рд▓рдЧрднрдЧ 72 рд╢рдмреНрдж рд╣реИрдВ, рдФрд░ рдПрд╕рдЖрд░ рдХреЗ рд╕рд╛рде рдбрдЪ рдореЗрдВ 2,000 рд╢рдмреНрдж рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЬрдм рдореИрдВ
disregard
рд╣реВрдВ,
sr
^2
рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╣рдореЗрдВ
di^2egard
рдорд┐рд▓рддрд╛ рд╣реИред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╕реНрдирд┐рдкреЗрдЯ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реИред рд╡рд┐рдо рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдлреЙрд░реНрдореВрд▓рд╛ рдпрд╛ рдкрд╛рда рдореЛрдб рдореЗрдВ рд╣реИ, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдпреВрд▓рд┐рдк рд╕реНрдирд┐рдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдЖрдпрд╛:
global !p texMathZones = ['texMathZone'+x for x in ['A', 'AS', 'B', 'BS', 'C', 'CS', 'D', 'DS', 'E', 'ES', 'F', 'FS', 'G', 'GS', 'H', 'HS', 'I', 'IS', 'J', 'JS', 'K', 'KS', 'L', 'LS', 'DS', 'V', 'W', 'X', 'Y', 'Z']] texIgnoreMathZones = ['texMathText'] texMathZoneIds = vim.eval('map('+str(texMathZones)+", 'hlID(v:val)')") texIgnoreMathZoneIds = vim.eval('map('+str(texIgnoreMathZones)+", 'hlID(v:val)')") ignore = texIgnoreMathZoneIds[0] def math(): synstackids = vim.eval("synstack(line('.'), col('.') - (col('.')>=2 ? 1 : 0))") try: first = next( i for i in reversed(synstackids) if i in texIgnoreMathZoneIds or i in texMathZoneIds ) return first != ignore except StopIteration: return False endglobal
рдЕрдм рдЖрдк рдЙрди рд╕реНрдирд┐рдкреЗрдЯ рдореЗрдВ
context "math()"
рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдХреЗрд╡рд▓ рдЧрдгрд┐рддреАрдп рд╕рдВрджрд░реНрдн рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
context "math()" snippet sr "^2" iA ^2 endsnippet
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЧрдгрд┐рддреАрдп рд╕рдВрджрд░реНрдн рдПрдХ рд╕реВрдХреНрд╖реНрдо рдЪреАрдЬ рд╣реИред рдХрднреА-рдХрднреА рдлреЙрд░реНрдореВрд▓рд╛ рдореЛрдб рдореЗрдВ рд╣рдо рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ
\text{...}
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреА рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдорд▓реЗ рдореЗрдВ:
\[ \text{$...$} \]
, рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛
рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐
math
рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдиреАрдореЗрд╢рди рдЗрди рд╕реВрдХреНрд╖реНрдорддрд╛рдУрдВ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИред

рдордХреНрдЦреА рдкрд░ рд╡рд░реНрддрдиреА рд╕реБрдзрд╛рд░
рдпрджреНрдпрдкрд┐ рд╕реВрддреНрд░ рдЕрдореВрд░реНрдд рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рдордп рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдЫрд╛рдкрддрд╛ рд╣реВрдВред рд▓рдЧрднрдЧ 80 рд╢рдмреНрдж рдкреНрд░рддрд┐ рдорд┐рдирдЯ, рдореЗрд░рд╛ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреМрд╢рд▓ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЯрд╛рдЗрдкреЛ рдмрдирд╛рддрд╛ рд╣реВрдВред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╡рд┐рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдВрдзрди рдЬреЛрдбрд╝рд╛ рд╣реИ рдЬреЛ рдХрд╛рдо рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд░реНрддрдиреА рдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИред рдЬрдм рдореИрдВ рдЗрдирдкреБрдЯ рдХреЗ рджреМрд░рд╛рди
Ctrl+L
рд╣реВрдВ, рддреЛ рдкрд┐рдЫрд▓реА рд╡рд░реНрддрдиреА рддреНрд░реБрдЯрд┐ рдареАрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рд╡рд░реНрддрдиреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдореЗрд░реА рд╕реЗрдЯрд┐рдВрдЧ:
setlocal spell set spelllang=nl,en_gb inoremap <Cl> <cg>u<Esc>[s1z=`]a<cg>u
рдпрд╣рд╛рдВ, рдкрд┐рдЫрд▓реА рд╡рд░реНрддрдиреА рддреНрд░реБрдЯрд┐ рдкрд░ рдЬрд╛рдПрдВ
[s
, рдлрд┐рд░ рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк
1z=
рдФрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдВ
`]a
ред рдмреАрдЪ рдореЗрдВ
<cg>u
рдХрдорд╛рдВрдб рдЖрдкрдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд╕реБрдзрд╛рд░ рдХреЛ рдкреВрд░реНрд╡рд╡рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ
рд╡рд┐рдо рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, LaTeX рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдЕрдм рдХрд╖реНрдЯрдкреНрд░рдж рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рдЦреБрд╢реА рд╣реИред рдордХреНрдЦреА рдкрд░ рд╡рд░реНрддрдиреА рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ, рдпрд╣ рдЖрдкрдХреЛ рдЧрдгрд┐рдд рдкрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рдЬрд▓реНрджреА рд╕реЗ рд╡реНрдпрд╛рдЦреНрдпрд╛рди рдХреА рд░реВрдкрд░реЗрдЦрд╛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЕрдиреНрдп рд╡рд┐рд╖рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдБрдЧрд╛, рдЬреИрд╕реЗ рдХрд┐ рдЪрд┐рддреНрд░рдгреЛрдВ рдХреЛ рдбрд┐рдЬрд┐рдЯрд▓ рд░реВрдк рд╕реЗ рдЪрд┐рддреНрд░рд┐рдд рдХрд░рдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ LaTeX рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рдирд╛ред