Important: This project is now deprecated. It turns out, while I was using the plugin, I didn't really like the experience. Today I am not even using Unite anymore, although I still appreciate the concept.
Still, if you think this plugin is a good idea, and you would like some advices on forking it, please contact me.
Fusion.vim is a Project-Navigation plugin for vim. It stands on top of two genius projects, from two of the greatest Vim Masters: Tim Pope's Vim-Projectionist and Shougo's Unite.
In practice it is a simple adapter for Vim-Projectionist into Unite.vim interface, but it ends up being extremely powerful, extensible AND user-friendly.
Vim-projectionist is a hidden gem from Tim Pope. It isn't that popular as compared to Vim-Rails, but it is basically an abstraction of Vim-Rails' navigation features, that can be configured for any project structure. Its strength is to be generic: once a structure has been define, Projectionist will automatically recognize any project using this structure.
TODO: Continue
TODO: :Unite projection-categories :Unite projection-files :Unite projection-files Navigation categories-> files
TODO: COMPLETE
TODO add a gif
Fusion.vim doesn't come with any predefined mappings, feel free to add your owns in your vimrc. For example:
nnoremap goo :Unite projection-categories -start-insert<cr>
nnoremap goa :Unite projection-files -start-insert<cr>
nnoremap gom :Unite projection-files -custom-category=model<cr>
nnoremap goc :Unite projection-files -custom-category=controller<cr>
nnoremap gov :Unite projection-files -custom-category=view<cr>
TODO more automatic
Fusion.vim depends on Vim-Projectionist and Unite plugins. TPope's vim-projectionist is not compatible yet with fusion.vim, you will need to use my fork.
Use your favourite plugin manager to install the plugins:
git clone https://github.com/Shougo/unite.vim ~/.vim/bundle/unite.vim
git clone https://github.com/RomainEndelin/vim-projectionist ~/.vim/bundle/vim-projectionist
git clone https://github.com/RomainEndelin/fusion.vim ~/.vim/bundle/fusion.vim
Plugin 'RomainEndelin/vim-projectionist'
Plugin 'Shougo/unite.vim'
Plugin 'RomainEndelin/fusion.vim'
Plug 'RomainEndelin/vim-projectionist'
Plug 'Shougo/unite.vim'
Plug 'RomainEndelin/fusion.vim'
NeoBundle 'RomainEndelin/vim-projectionist'
NeoBundle 'Shougo/unite.vim'
NeoBundle 'RomainEndelin/fusion.vim', {'depends': ['Shougo/unite.vim',
\ 'RomainEndelin/vim-projectionist']}
Copyright (c) Romain Endelin. Distributed under the same terms as Vim itself.
See :help license
.