рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ рдХрд┐ рд╣рдм рдкрд░ рдпреВрдирд╛рдЗрдЯ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдХреЛрдИ рд╡рд░реНрдгрди рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рд╡рд┐рдо рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпреВрдирд╛рдЗрдЯ рдРрд╕реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рддреА рд╣реИ рдЬреИрд╕реЗ: CtrlP, FuzzyFinder, ack, yankring, LustyJuggler, рдмрдлрд░ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░, рдЖрджрд┐ред
рд╕реНрдерд╛рдкрдирд╛ рд░рджреНрдж рдХрд░реЗрдВ
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рдЖрдкрдХреЛ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреА рд╣реЛрдВрдЧреАред рдореИрдВ Vundle рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВрдЧреЗред рдХреБрдЫ рдпреВрдирд╛рдЗрдЯ рдлреАрдЪрд░реНрд╕ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП vimproc рдкреНрд▓рдЧрдЗрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╣рдорд╛рд░реА .vimrc рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
Bundle 'Shougo/vimproc.vim' Bundle 'Shougo/unite.vim'
рд╣рдо рд╕рдВрдкрд╛рджрдХ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ: рдмрдВрдбрд▓рдЗрдирд╕реНрдЯреЙрд▓ред рд╕рдВрдХрд▓рд┐рдд vimproc:
cd ~ cd .vim/bundle/vimproc.vim make -f make_mac.mak
рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдкреВрд░реА рд╣реЛ рдЧрдИ рд╣реИ, рдпреВрдирд╛рдЗрдЯ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ рдЬрд╛рдПрдВред рдЖрдЗрдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ vimrc рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
" insert mode let g:unite_enable_start_insert = 1 " Unite let g:unite_split_rule = "botright" " let g:unite_force_overwrite_statusline = 0 " Unite let g:unite_winheight = 10 " let g:unite_candidate_icon="тЦ╖"
рдЖрдЗрдП рдХреБрдЫ рдпреВрдиреАрдЯ рдХрдорд╛рдВрдбреНрд╕ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдВ:
рдЯреАрдо | рд╡рд┐рд╡рд░рдг |
---|
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдХрдЬреБрдЯ рдХрд░реЗрдВ | рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдЦреЛрд▓реЗрдВ |
рдПрдХрд╕рд╛рд░ рдмрдлрд░ | рдЦреБрд▓реЗ рдмрдлрд╝рд░реНрд╕ рджрд┐рдЦрд╛рдПрдВ |
рдлрд╝рд╛рдЗрд▓ рдмрдлрд░ рдХреЛ рдПрдХрдЬреБрдЯ рдХрд░реЗрдВ | рдлрд╝рд╛рдЗрд▓реЗрдВ рджрд┐рдЦрд╛рдПрдБ рдФрд░ рдмрдлрд╝рд░реНрд╕ рдЦреЛрд▓реЗрдВ |
рдпреВрдирд╛рдИрдЯреЗрдб рдЯреАрдо рднреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпреВрдЯреЛ-рдкреНрд░реАрд╡реНрдпреВ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдпреВрдирд╛рдЗрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдпреВрдирд╛рдЗрдЯ рдХреЛ рдПрдХ рдлрд╛рдЗрд▓ рдкреНрд░реАрд╡реНрдпреВ рдлрдВрдХреНрд╢рди (рдЬреИрд╕реЗ рд╕рдмрд▓рд╛рдЗрдо рдореЗрдВ) рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд░реЗрдВрдЧреЗред
рдпрджрд┐ рдЖрдкрдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН, рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдмрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрдХреНрд╖рд░реЛрдВ рдореЗрдВ рджрд░реНрдЬ рдХрд░реЗрдВ рдЬреИрд╕реЗ рдХрд┐ CtrlP рдФрд░ Command-T рдореЗрдВ рджрд░реНрдЬ рдХрд░реЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдпрд╣ file_rec / async рдлреНрд▓реИрдЧ рдХреЗ рд╕рд╛рде Unite рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдореИрдВ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╡рд┐рдХрд▓реНрдк vimproc рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред :
Unite file_rec/async
рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдкрд╣рд▓реЗ рдЕрдХреНрд╖рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ -рд╕реНрдЯрд╛рд░реНрдЯ-рдЗрдВрд╕рд░реНрдЯ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
Unite file_rec/async -start-insert
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдХрдорд╛рдВрдб рдХрд╛ рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдЬреЛ рдореИрдВрдиреЗ рдиреЗрддрд╛ + рдПрдл рд╕рдВрдпреЛрдЬрди рд╕реЗ рдЬреБрдбрд╝рд╛ рдерд╛
nnoremap <leader>f :<Cu>Unite -buffer-name=files -start-insert buffer file_rec/async:!<cr>
рдпреВрдирд╛рдЗрдЯ рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрдкрд╛рджрдХ рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ
рдпреВрдирд╛рдЗрдЯ рдореЗрдВ рдПрдХ рдХрдорд╛рдВрдб рдореЛрдб рднреА рд╣реИ, рдЬрд┐рд╕реЗ рдУрдкрди рдпреВрдирд╛рдЗрдЯ рдмрдлрд░ рдореЗрдВ Ctrl + i рджрдмрд╛рдХрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХрдорд╛рдВрдб рдореЛрдб рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ, рдмреБрдХрдорд╛рд░реНрдХ рдмрдирд╛рдиреЗ, grep рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ, рдЖрджрд┐ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡реИрд╕реЗ, рдЖрдк рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдмреБрдХрдорд╛рд░реНрдХ рдХреА рд╕реВрдЪреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: рдмреБрдХрдорд╛рд░реНрдХ рдХреЛ рдПрдХрдЬреБрдЯ рдХрд░реЗрдВ, рдФрд░ рдЖрдк рдХрдорд╛рдВрдб рдореЛрдб рд╕реЗ рдмреБрдХрдорд╛рд░реНрдХ рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдпреВрдирд╛рдЗрдЯ рдореЗрдВ рдЕрдкрдирд╛ рдореЗрдиреНрдпреВ рдмрдирд╛рдПрдВ
рдпреВрдирд╛рдЗрдЯ рдореЗрдВ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдореЗрдиреВ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ (
рдорджрдж рдХреЗ рд▓рд┐рдП рдЧрд╛рдм
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЧрдорд┐рд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж)ред рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг:
let g:unite_source_menu_menus = {} let g:unite_source_menu_menus.mymenu = { \ 'description' : 'My Unite menu', \ } let g:unite_source_menu_menus.mymenu.candidates = { \ 'mru&buffer' : 'Unite buffer file_mru', \ 'tag' : 'Unite tag', \ 'file' : 'Unite file', \ 'file_rec' : 'Unite file_rec', \ 'file_rec/async' : 'Unite file_rec/async', \ 'find' : 'Unite find', \ 'grep' : 'Unite grep', \ 'register' : 'Unite register', \ 'bookmark' : 'Unite bookmark', \ 'output' : 'Unite output', \ } function g:unite_source_menu_menus.mymenu.map(key, value) return { \ 'word' : a:key, 'kind' : 'command', \ 'action__command' : a:value, \ } endfunction
рдЖрдк рдореЗрдиреВ рдХреЛ рдХрдорд╛рдВрдб рд╕реЗ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ
:Unite menu:mymenu
рдпреВрдирд╛рдЗрдЯ рдХреЗ рдХреБрдЫ рдФрд░ рдЙрджрд╛рд╣рд░рдг
CtrlP рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЦреЛрдЬреЗрдВ
:Unite file_rec/async
рдХрд╛рдо рдХрд╛ рдЙрджрд╛рд╣рд░рдг Ack.vim рдореЗрдВ рдЦреЛрдЬреЗрдВ
:Unite grep:.
рдХрд╛рдо рдХрд╛ рдЙрджрд╛рд╣рд░рдг Yankring / yankstack рдореЗрдВ рдЦреЛрдЬ рдЗрддрд┐рд╣рд╛рд╕
let g:unite_source_history_yank_enable = 1 :Unite history/yank
рдХрд╛рдо рдХрд╛ рдЙрджрд╛рд╣рд░рдг LustyJuggler рдХреЗ рд░реВрдк рдореЗрдВ рдмрдлрд╝рд░реНрд╕ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ
:Unite -quick-match buffer
рдХрд╛рдо рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреЗрдЬ