рд╕рдВрдкрд╛рджрдХ рдХреЗ рдкреНрд░рднрд╛рд╡реА рдЙрдкрдпреЛрдЧ рдХреЗ рдирд┐рдпрдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ - рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЯрд╛рдЗрдкрд┐рдВрдЧ рдкрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рдХреНрдпрд╛ рдЦрд░реНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ рд╕реБрдзрд╛рд░реЗрдВред
рдЬреИрд╕рд╛ рдХрд┐ рдЕрднреНрдпрд╛рд╕ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рдЕрдХреНрд╕рд░ рдЗрд╕ рд╕рдВрдкрд╛рджрдХ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рддрдХ рд╕реАрдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдлрд┐рд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреА рд╕рд▓рд╛рд╣ рдкрд░ рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛ рдкреНрд▓рдЧ-рдЗрди рдореЗрдЧрд╛-рдкреИрдХ рд▓рдЧрд╛рдпрд╛, рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИ, рд╕рд┐рд╡рд╛рдп ... рдкрд╣рд▓реЗ, рджреВрд╕рд░реЗ, рддреАрд╕рд░реЗ ...
рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрд╕реАрдо рдХреНрд╖рдорддрд╛ рдХреА рдЦреЛрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рд╡рд┐рдо рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЙрдиреНрдирдд рддрд░реАрдХреЗ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред
рд╣рдо рдЖрдкрдХреЗ рд╕рд╛рде рдЖрдВрддрд░рд┐рдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╕рдордЭреЗрдВрдЧреЗ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреБрдЫ рднреА рднрдпрд╛рдирдХ рдирд╣реАрдВ рд╣реИ, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ред
рдпрд╣ рд╕рд╛рдордЧреНрд░реА рд╡рд┐рдо рд╕рдВрдкрд╛рджрдХ рдХреЗ рдХрд╛рдлреА рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдЧрдИ рд╣реИред рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдВрдкрд╛рджрдХ рдореЛрдб, рдмрдлрд╝рд░реНрд╕, рд╡рд┐рдВрдбреЛ рдХреНрдпрд╛ рд╣реИрдВред рд▓реЗрдЦ "рдПрдХ рдЕрдзреНрдпрд╛рдп - рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдиреБрд╕реНрдЦрд╛ - рднрд╛рд╖рд╛ рдХреА рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдПрдХ рд╡рд┐рд╡рд░рдг" рдХреА рд╢реИрд▓реА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред
рдЗрддрд┐рд╣рд╛рд╕ рдмрджрд▓реЛ рдпрд╛ рдлрд┐рд░ рдмрдпрд╛рди
рдпрд╣рд╛рдБ рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ vimrc рдореЗрдВ if рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ
if version >= 700 set history=64 set undolevels=128 set undodir=~/.vim/undodir/ set undofile set undolevels=1000 set undoreload=10000 endif
рдХреЛрдб рдХреЗ рдЗрд╕ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рдХреБрдЫ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг 7.00 рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ: рдЬрдм рдЖрдк рд╕рдВрдкрд╛рджрдХ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ (рдпрд╛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╡рд░реНрддрдорд╛рди рдмрдлрд░), рддреЛ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ UNDO-REDO рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рдЦреЛ рдЧрдпрд╛ рдерд╛ред 7.00 рд╕реЗ рд╢реБрд░реВ рдХрд░рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд╣рд▓реЗ рд╕реЗ рдЦреЛрд▓реЗ рдЧрдП рдмрдлрд░ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рдХреА рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЗрд╕ рдХрд╣рд╛рдиреА рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдерд╛ред
рдпрд╣реА рд╣реИ, рдЕрдм рдЖрдк рдмрдлрд░ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЦрд┐рдбрд╝рдХреА рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдВрдкрд╛рджрдХ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рдиреЗ рд╕реЗ рдЖрдкрдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рдмрд╣рд╛рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдЬрд▓реНрджреА рд╕реЗ рдмрдлрд╝рд░реНрд╕ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ рдпрд╛ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдПрдВ
рд▓реЛрдбреЗрдб рдмрдлрд╝рд░реНрд╕ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рддреНрд╡рд░рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓рдЧрд╛рддрд╛рд░ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ: bn ,: bp ,: b #ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдПрдВрдЧреЗ рдФрд░ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╣реЙрдЯ рдХреАрдЬрд╝ рдкрд░ рд▓рдЯрдХрд╛рдПрдВрдЧреЗред
function! ChangeBuf(cmd) if (&modified && &modifiable) execute ":w" endif execute a:cmd endfunction nnoremap <silent> <Co> :call ChangeBuf(":b#")<CR> nnoremap <silent> <Cn> :call ChangeBuf(":bn")<CR> nnoremap <silent> <Cp> :call ChangeBuf(":bp")<CR>
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдХрдорд╛рдВрдб: bn ,: bp, b # рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдФрд░ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЬреЛ рдпрд╣ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ рдФрд░ рдХреНрдпрд╛ рдЗрд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рддрд░реНрдХ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдмрдлрд╝рд░реНрд╕ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рдЙрди рдЖрджреЗрд╢реЛрдВ рдХреЛ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред
nnoremap рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреБрдВрдЬреА рд╕рдВрдпреЛрдЬрди рдХрд╛ рдПрдХ рдмрдВрдзрди рдмрдирд╛рддрд╛ рд╣реИред рдЗрдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЙрдЬрд┐рдХ \ <рд╕рд╛рдЗрд▓реЗрдВрдЯ \ _ рд╣реИред
рдпрд╣рд╛рдБ рд╣рдореЗрдВ .vrcrc рдореЗрдВ рдЪрд░ рдкрд░ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН, рдЙрдирдореЗрдВ рд╕реЗ рд▓рдЧрднрдЧ рд╕рднреА рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрд╕рд░реНрдЧ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ, рдПрдХ рдмреГрд╣рджрд╛рдиреНрддреНрд░ рджреНрд╡рд╛рд░рд╛ рдирд╛рдо рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЙрдкрд╕рд░реНрдЧ рдХрд╛ рдЕрд░реНрде рд╣реИ рджрд╛рдпрд░рд╛ред рдпрд╣рд╛рдБ рдореБрдЦреНрдп рдЙрдкрд╕рд░реНрдЧ рд╣реИрдВ:
a: var - рдлрд╝рдВрдХреНрд╢рди рддрд░реНрдХ
b: var - рдХрд░рдВрдЯ рдмрдлрд░ рдХреЗ рд▓рд┐рдП рд╡реЗрд░рд┐рдПрдмрд▓
g: var - рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░
l: var - рдлрд╝рдВрдХреНрд╢рди рдмреЙрдбреА рдореЗрдВ рдШреЛрд╖рд┐рдд рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓
v: var - рд╡реИрд╢реНрд╡рд┐рдХ рдХреЛ рд╡рд┐рдо рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рд╣реА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИрдмрдлрд░ рд╕реВрдЪреА рдпрд╛ рд▓реВрдк рдХреЗ рд▓рд┐рдП
рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдмрдлрд╝рд░реНрд╕ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ: ls, рдпрджрд┐ рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рдорд▓реНрдЯреА-рд▓рд╛рдЗрди рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЦреБрд▓реЗ рдмрдлрд╝рд░реНрд╕ рдХреА рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реВрдк рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд┐рдЫрд▓реЗ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐ рд╕рд╣рд┐рдд рдХрд╣реАрдВ рднреА рдХреЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рд╡рд░реНрддрдорд╛рди рдмрдлрд░ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЕрдиреНрдп рдЦреБрд▓реЗ рдмрдлрд╝рд░реНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рддреБрд░рдВрдд рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рдПрдЧреАред
function! BufList() let status = "" for i in range(1, last_buffer_nr()+1) if bufnr("%") == i let status = status . ' ' . '[' . bufname(i) . ']' " continue endif if buflisted(i) let status = status . ' ' . bufname(i) endif endfor return status endfunction
рдпрд╣рд╛рдБ рд╣рдо рдХреЗрд╡рд▓ рдЦреБрд▓реЗ рдмрдлрд╝рд░реНрд╕ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдХ рд▓рд╛рдЗрди рдмрдирд╛рддреЗ рд╣реИрдВред рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдмрдлрд░ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реВрдк рдХреЗ рд▓рд┐рдП рд▓реВрдк рд╕рдорд╛рди рдкрд╛рдпрдерди рд╕реЗ рд▓реВрдк рдХреЗ рд╕рдорд╛рди рд╣реИ
рдпрд╣рд╛рдБ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рд╡рд┐рдо рд╕рдВрдкрд╛рджрдХ рдХреЗ рдХрдИ рдХрд╛рд░реНрдп рддрдерд╛рдХрдерд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддреЗ рд╣реИрдВред Bufnr () рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреАрдХ "%" - рд╡рд░реНрддрдорд╛рди рдмрдлрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рджреЗрдЧрд╛, "$" - рдЕрдВрддрд┐рдо рдмрдлрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рджреЗрдЧрд╛ред рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП, рдпрд╣ рджреЗрдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ: func () рдореЗрдВ рдорджрдж рдХрд░реЗрдВ
рд╡рд░реНрддрдорд╛рди рдмрдлрд░ рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рдбреЗрдЯрд╛ рдкрдврд╝рдирд╛
рдореИрдВ рдЕрдХреНрд╕рд░ рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВред рдФрд░ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рддреБрд░рдВрдд рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд╣реЛ рд╕рдХрддреА рд╣реИред
function ModeChange() if getline(1) =~ "^#!" if getline(1) =~ "bin/" silent !chmod a+x <afile> endif endif endfunction au BufWritePost * call ModeChange()
рдпрд╣рд╛рдВ рд╣рдо рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдкрдврд╝рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдЧрд░ рдпрд╣ '#!' рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдЗрд╕рдореЗрдВ 'рдмрд┐рди /' рд╣реИ, рдлрд┐рд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрдирд╛рдПрдВред рдмрд╛рдж рд╣рдо BufWritePost рдЗрд╡реЗрдВрдЯ рдкрд░ рдСрдЯреЛ рдХрдорд╛рдВрдб рд▓рдЯрдХрд╛рддреЗ рд╣реИрдВред
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреИрдпрд╛рд░ рдХрд░реЗрдВ рдпрд╛ рд╡рд░реНрддрдорд╛рди рдмрдлрд░ рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ
рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдкрд┐рдЫрд▓реЗ рдПрдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдпрджрд┐ рд╣рдо рдЕрдЬрдЧрд░ рдореЗрдВ рдПрдХ рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЗрд╕рдореЗрдВ рдПрдХ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореБрдЦреНрдп рдХрд╛рд░реНрдп, рдХреБрдЫ рдЖрдпрд╛рдд рдФрд░ рджреБрднрд╛рд╖рд┐рдпрд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рд░реЗрдЦрд╛ред рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░реЗрдВред
function! WritePyinit() let @q = " \#\!/usr/bin/env python\n\#-*- encoding: utf-8 -*-\n\nimport sys, warnings\n\nwarnings.simplefilter('always')\n\ndef main(argv=sys.argv):\n pass\n\nif __name__ == \"__main__\":\n sys.exit(main())\n" execute "0put q" endfunction autocmd BufNewFile *.py call WritePyinit()
рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдирдИ * .py рдлрд╝рд╛рдЗрд▓ рд╣реИ, рддреЛ рдорд╛рдирдХ рдХреЛрдб рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред
рдирдИ test.py рдлрд╝рд╛рдЗрд▓ рдкрд╛рдпрдерди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░рд▓реЗрдЦрди рдпрд╛ vimrc рд▓рд┐рдЦрдирд╛
рдпрд╣ рд▓реЗрдЦ рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрджрд┐ рдореИрдВрдиреЗ рдпрд╣ рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ .vimrc рдХреИрд╕реЗ рдбрд╛рд▓реЗрдВред рдореИрдВ рдЗрд╕реЗ рдкрд╛рдпрдерди рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ред
рдХреЛрдб рдХреЛ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкрд╛рдпрдерди рдореЗрдВ, рдкреНрд░рд▓реЗрдЦрди рдХреЛ рдЕрдХреНрд╕рд░ рдбреЙрдХрд╕реНрдЯреНрд░реАрдо рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдЗрдП рд╣рдо рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░, рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ, рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрд╕ рд╕реНрдерд╛рди рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдкреНрд░рд▓реЗрдЦрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдСрдЯреЛ рдкреНрд░рд▓реЗрдЦрди function! WriteDocstrings() python <<EOF import vim import re linenr = vim.current.window.cursor[0] indentr = vim.current.window.cursor[0] line = vim.current.line n = 0 for i in line: if i != ' ': break n += 1 if len(line) == 0: n = 0 vim.current.buffer.append(' '*n + ' '*4 + '"""', linenr) vim.current.buffer.append(' '*n + ' '*4 + '', linenr) vim.current.buffer.append(' '*n + ' '*4 + '"""', linenr) vim.current.window.cursor = (vim.current.window.cursor[0]+2, n+4) EOF endfunction
рдлрд┐рд░, рдХреБрдЫ рднреА рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд╕рд╛рдзрд╛рд░рдг рд╣реЗрд░-рдбреЙрдХреНрд╕ред
рдпрд╣рд╛рдВ рд╣рдо рдкрд╛рдпрдерди рд╡рд┐рдо рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрд╛рдж, рд╡рд░реНрддрдорд╛рди рдмреНрд▓реЙрдХ рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ, рд╡рд╣рд╛рдВ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрди рдбрд╛рд▓реЗрдВ рдФрд░ рдХрд░реНрд╕рд░ рдХреЛ рднрд╡рд┐рд╖реНрдп рдХреЗ рдкреНрд░рд▓реЗрдЦрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдВред
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рдХреЛрдб рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╡рд┐рдо рдореЗрдВ рдЕрдЬрдЧрд░ рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдк рдЗрд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
vim --version | grep '+python'
рдЕрдЧрд░ рд╕рдорд░реНрдерди рд╣реИ, рддреЛ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЖрдкрдХреЛ рдпрд╛ рддреЛ рд╡рд┐рдо рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдпрд╛ рджреВрд╕рд░реЗ рдкреИрдХреЗрдЬ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдбреЗрдмрд┐рдпрди / рдЙрдмрдВрдЯреВ / рдЯрдХрд╕рд╛рд▓ рдкрд░, рдореИрдВ рд╡рд┐рдо-рдиреЙрдХреНрд╕ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ
apt-get install nox
рдирд┐рд╖реНрдХрд░реНрд╖
рд▓реЗрдЦ рдХрд╛рдлреА рдмрдбрд╝рд╛ рдирд┐рдХрд▓рд╛ред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рджрд┐рдЦрд╛рдпрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдм, рдЙрдиреНрдирдд рд╕рдВрдкрд╛рджрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реБрдП, рдЖрдк рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рдкрд░рд┐рд╡рд░реНрдзрди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрдпрдирд┐рдд рдкрд╛рда рдХреЗ рдмреНрд▓реЙрдХ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдирд╛, рдХрд┐рд╕реА рднреА рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкреНрд░рд▓реЗрдЦрди рдЦреЛрд▓рдирд╛ред
рдЙрдкрдпреЛрдЧреА рд╕рд╛рдордЧреНрд░реА рдХреА рд╕реВрдЪреА
рд╡рд┐рдо рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯрд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде VIMDOCрдкрд╛рдпрдерди рд╡рд┐рдо рдореЙрдбреНрдпреВрд▓ рдкреНрд░рд▓реЗрдЦрдиUPD1: vimrc рдЦреБрд▓реА рд╣реБрдИ " " Comments/uncomments strings and selected text " When buffer changing try to save it " Convinient view of statusline " AutoResave sessions on exit " Auto settings for DJANGO omni completion " "Mapped Keys " Mode Combination Description " N <Cn> Next buffer with saving if possible " N <Cp> Prev buffer with saving if possible " N <Co> Last viewed buffer " N <Ce> Clear highlighting after searching " I <Cq> Set normal mode " N <Cc> Comment Lines " N <Cu> Uncomment Lines " I <C-Space> Show popup menu OmniCompletion " I <Tab> If popupmenu is showed list it elements " NIV <F5> Bonding Mode(useful when pasting from X-buffer) " I <Ah> Left in insert mode " I <Aj> Down in insert mode " I <Ak> Up in insert mode " I <Al> Right in insert mode " N ,p Paste after " N ,P Paste before " N <Cj> Down in long line " N <Ck> Up in long line " V <Cc> Comment Line " V <Cu> Uncomment Line filetype on filetype plugin on set tabstop=4 set shiftwidth=4 set smarttab set expandtab set softtabstop=4 set autoindent let python_highlight_all = 1 set t_Co=256 autocmd FileType html,xhtml,xml,htmldjango,htmljinja,eruby,mako setlocal noexpandtab autocmd FileType *.py set tw=80 autocmd FileType python nnoremap <Ca> :call WriteDocstrings()<CR> "nnoremap <Ca> :call WriteDocstrings()<CR> autocmd BufWritePre *.py normal m`:%s/\s\+$//e `` autocmd BufRead *.py set smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class autocmd BufNewFile *.py call WritePyinit() autocmd VimLeave * !reset set nu set ruler set mousehide syntax on set backspace=indent,eol,start whichwrap+=<,>,[,] set showtabline=0 set foldcolumn=1 set wrap set linebreak set nobackup set noswapfile set encoding=utf-8 set fileencodings=utf8,cp1251 "Searchig options set showmatch set hlsearch set incsearch "Layouts set fencs=utf-8,cp1251,koi8-r,ucs-2,cp866 "memory, history, undotree if version >= 700 set history=64 set undolevels=128 set undodir=~/.vim/undodir/ set undofile set undolevels=1000 set undoreload=10000 endif "Sessions - , . set sessionoptions=buffers,tabpages,help,blank,globals,localoptions,sesdir,slash,options function! SaveSession(...) if v:this_session != "" function Tmp(filename) execute ":mksession! ".v:this_session endfunction autocmd VimLeavePre * :call Tmp("xxx") endif endfunction au SessionLoadPost * :call SaveSession() "Titles, statuses set laststatus=2 set showtabline=2 set title set statusline=%1*%m%*%2*%r%*%3*%h%w%*%{expand(\"%:p:~\")}\ %< set statusline+=%=Col:%3*%03c%*\ Ln:%3*%04l/%04L%* set statusline+=%(\ File:%3*%{join(filter([&filetype,&fileformat!=split(&fileformats,\",\")[0]?&fileformat:\"\",&fileencoding!=split(&fileencodings,\",\")[0]?&fileencoding:\"\"],\"!empty(v:val)\"),\"/\")}%*%) set titlestring=%t%(\ %m%)%(\ %r%)%(\ %h%)%(\ %w%)%(\ (%{expand(\"%:p:~:h\")})%)\ -\ VIM "autocmd VimLeavePre * silent mksession! ~/.vim/lastSession.vim "autocmd VimEnter * silent source! ~/.vim/lastSession.vim """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set langmap=q,w,e,r,t,y,u,i,o,p,[,],a,s,d,f,g,h,j,k,l,\\;,',z,x,c,v,b,n,m,\\,,.,`,Q,W,E,R,T,Y,U,I,O,P,{,},A,S,D,F,G,H,J,K,L,:,\\",Z,X,C,V,B,N,M,<,>,~ "Buffers function! ChangeBuf(cmd) if (&modified && &modifiable) execute ":w" endif execute a:cmd endfunction nnoremap <silent> <Co> :call ChangeBuf(":b