When I first found out about the popular CtrlP plug-in, I found myself using it constantly. Being able to switch between the document I had in my head was increasingly faster than traditional methods I was used to, and CtrlP soon became my most used plug-in.
I am constantly trying to “streamline” my vimrc, adding new tricks and removing unused shortcuts. I had heard about the Unite plug-in by Shugo and thought it could help me consolidate my file/buffer/mru search setup.
With help with various articles I setup Unite to handle content searching, yank history and file/buffer searching but I still wasn’t satisfied with the behaviour, I was still more comfortable with Ctrlp. After half an hour of tweaking I managed to replicate most of CtrlP’s behaviour with Unite.
<C-x> <C-v>
open file in horizontal and vertical split<C-t>
open file in new tab<esc>
exit unite window<C-j> <C-k>
Navigation, keep hands on home rowBelow is a portion of my vim unite config that has Unite acting similar to CtrlP. You can view my full unite configuration on github.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Unite
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let g:unite_enable_start_insert = 1
let g:unite_split_rule = "botright"
let g:unite_force_overwrite_statusline = 0
let g:unite_winheight = 10
call unite#custom_source('file_rec,file_rec/async,file_mru,file,buffer,grep',
\ 'ignore_pattern', join([
\ '\.git/',
\ ], '\|'))
call unite#filters#matcher_default#use(['matcher_fuzzy'])
call unite#filters#sorter_default#use(['sorter_rank'])
nnoremap <C-P> :<C-u>Unite -buffer-name=files -start-insert buffer file_rec/async:!<cr>
autocmd FileType unite call s:unite_settings()
function! s:unite_settings()
let b:SuperTabDisabled=1
imap <buffer> <C-j> <Plug>(unite_select_next_line)
imap <buffer> <C-k> <Plug>(unite_select_previous_line)
imap <silent><buffer><expr> <C-x> unite#do_action('split')
imap <silent><buffer><expr> <C-v> unite#do_action('vsplit')
imap <silent><buffer><expr> <C-t> unite#do_action('tabopen')
nmap <buffer> <ESC> <Plug>(unite_exit)
endfunction
Need a versatile Web Developer and Designer? Want to find out more about what I do?