Created
January 13, 2013 01:09
-
-
Save alpaca-tc/4521542 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" neobundle"{{{ | |
filetype plugin indent off " required! | |
" initialize"{{{ | |
if has('vim_starting') | |
let bundle_dir = '~/.bundle' | |
if !isdirectory(bundle_dir.'/neobundle.vim') | |
call system( 'git clone https://github.com/Shougo/neobundle.vim.git '.bundle_dir.'/neobundle.vim') | |
endif | |
exe 'set runtimepath+='.bundle_dir.'/neobundle.vim' | |
call neobundle#rc(bundle_dir) | |
endif | |
augroup MyNeobundle | |
au! | |
au Syntax vim syntax keyword vimCommand NeoBundle NeoBundleLazy NeoBundleSource NeoBundleFetch | |
augroup END | |
"}}} | |
" 暫定customize {{{ | |
function! Neo_al(ft) "{{{ | |
return { 'autoload' : { | |
\ 'filetype' : a:ft | |
\ }} | |
endfunction"}}} | |
function! Neo_operator(mappings) "{{{ | |
return { | |
\ 'depends' : 'kana/vim-textobj-user', | |
\ 'autoload' : { | |
\ 'mappings' : a:mappings | |
\ }} | |
endfunction"}}} | |
function! BundleLoadDepends(bundle_names) "{{{ | |
if !exists('g:loaded_bundles') | |
let g:loaded_bundles = {} | |
endif | |
" bundleの読み込み | |
if !has_key( g:loaded_bundles, a:bundle_names ) | |
execute 'NeoBundleSource '.a:bundle_names | |
let g:loaded_bundles[a:bundle_names] = 1 | |
endif | |
endfunction"}}} | |
"}}} | |
" コマンドを伴うやつの遅延読み込み | |
function! BundleWithCmd(bundle_names, cmd) "{{{ | |
call BundleLoadDepends(a:bundle_names) | |
" コマンドの実行 | |
if !empty(a:cmd) | |
execute a:cmd | |
endif | |
endfunction "}}} | |
"bundle"{{{ | |
" その他 {{{ | |
NeoBundle 'Shougo/vimproc', { | |
\ 'build' : { | |
\ 'mac' : 'make -f make_mac.mak', | |
\ 'unix' : 'make -f make_unix.mak', | |
\ }, | |
\ } | |
NeoBundleLazy 'taichouchou2/vim-endwise.git', { | |
\ 'autoload' : { | |
\ 'insert' : 1, | |
\ } } | |
" }}} | |
" 補完 {{{ | |
NeoBundleLazy 'Shougo/neocomplcache', { | |
\ 'autoload' : { | |
\ 'insert' : 1, | |
\ }} | |
NeoBundleLazy 'Shougo/neosnippet', { | |
\ 'autoload' : { | |
\ 'insert' : 1, | |
\ }} | |
NeoBundle 'Shougo/neocomplcache-rsense', { | |
\ 'depends': 'Shougo/neocomplcache', | |
\ 'autoload': { 'filetypes': 'ruby' }} | |
NeoBundleLazy 'taichouchou2/rsense-0.3', { | |
\ 'build' : { | |
\ 'mac': 'ruby etc/config.rb > ~/.rsense', | |
\ 'unix': 'ruby etc/config.rb > ~/.rsense', | |
\ } } | |
" }}} | |
" 便利 {{{ | |
" 範囲指定のコマンドが使えないので、tcommentのLazy化はNeoBundleのアップデートを待ちましょう... | |
NeoBundle 'tomtom/tcomment_vim' | |
NeoBundleLazy 'tpope/vim-surround', { | |
\ 'autoload' : { | |
\ 'mappings' : [ | |
\ ['nx', '<Plug>Dsurround'], ['nx', '<Plug>Csurround'], | |
\ ['nx', '<Plug>Ysurround'], ['nx', '<Plug>YSurround'], | |
\ ['nx', '<Plug>Yssurround'], ['nx', '<Plug>YSsurround'], | |
\ ['nx', '<Plug>YSsurround'], ['vx', '<Plug>VgSurround'], | |
\ ['vx', '<Plug>VSurround'] | |
\ ]}} | |
" }}} | |
" ruby / railsサポート {{{ | |
NeoBundle 'tpope/vim-rails' | |
NeoBundleLazy 'ujihisa/unite-rake', { | |
\ 'depends' : 'Shougo/unite.vim' } | |
NeoBundleLazy 'basyura/unite-rails', { | |
\ 'depends' : 'Shjkougo/unite.vim' } | |
NeoBundleLazy 'taichouchou2/unite-rails_best_practices', { | |
\ 'depends' : 'Shougo/unite.vim', | |
\ 'build' : { | |
\ 'mac': 'gem install rails_best_practices', | |
\ 'unix': 'gem install rails_best_practices', | |
\ } | |
\ } | |
NeoBundleLazy 'taichouchou2/unite-reek', { | |
\ 'build' : { | |
\ 'mac': 'gem install reek', | |
\ 'unix': 'gem install reek', | |
\ }, | |
\ 'autoload': { 'filetypes': ['ruby', 'eruby', 'haml'] }, | |
\ 'depends' : 'Shougo/unite.vim' } | |
NeoBundleLazy 'taichouchou2/alpaca_complete', { | |
\ 'depends' : 'tpope/vim-rails', | |
\ 'build' : { | |
\ 'mac': 'gem install alpaca_complete', | |
\ 'unix': 'gem install alpaca_complete', | |
\ } | |
\ } | |
let s:bundle_rails = 'unite-rails unite-rails_best_practices unite-rake alpaca_complete' | |
function! s:bundleLoadDepends(bundle_names) "{{{ | |
" bundleの読み込み | |
execute 'NeoBundleSource '.a:bundle_names | |
au! MyAutoCmd | |
endfunction"}}} | |
aug MyAutoCmd | |
au User Rails call <SID>bundleLoadDepends(s:bundle_rails) | |
aug END | |
" reference環境 | |
NeoBundleLazy 'vim-ruby/vim-ruby', { | |
\ 'autoload' : { 'filetypes': ['ruby', 'eruby', 'haml'] } } | |
NeoBundleLazy 'taka84u9/vim-ref-ri', { | |
\ 'depends': ['Shougo/unite.vim', 'thinca/vim-ref'], | |
\ 'autoload': { 'filetypes': ['ruby', 'eruby', 'haml'] } } | |
NeoBundleLazy 'skwp/vim-rspec', { | |
\ 'autoload': { 'filetypes': ['ruby', 'eruby', 'haml'] } } | |
NeoBundleLazy 'ruby-matchit', { | |
\ 'autoload' : { 'filetypes': ['ruby', 'eruby', 'haml'] } } | |
" }}} | |
" }}} | |
" Installation check. "{{{ | |
if neobundle#exists_not_installed_bundles() | |
echomsg 'Not installed bundles : ' . | |
\ string(neobundle#get_not_installed_bundle_names()) | |
echomsg 'Install Plugins' | |
NeoBundleInstall | |
endif | |
"}}} | |
filetype plugin indent on | |
"}}} | |
" plugin settings"{{{ | |
"------------------------------------ | |
" endwise.vim | |
"------------------------------------ | |
"{{{ | |
let g:endwise_no_mappings=1 | |
"}}} | |
"------------------------------------ | |
" vim-surround | |
"------------------------------------ | |
" {{{ | |
nmap ds <Plug>Dsurround | |
nmap cs <Plug>Csurround | |
nmap ys <Plug>Ysurround | |
nmap yS <Plug>YSurround | |
nmap yss <Plug>Yssurround | |
nmap ySs <Plug>YSsurround | |
nmap ySS <Plug>YSsurround | |
xmap S <Plug>VSurround | |
xmap gS <Plug>VgSurround | |
vmap s <Plug>VSurround | |
" surround_custom_mappings.vim"{{{ | |
let g:surround_custom_mapping = {} | |
let g:surround_custom_mapping._ = { | |
\ 'p': "<pre> \r </pre>", | |
\ 'w': "%w(\r)", | |
\ } | |
let g:surround_custom_mapping.help = { | |
\ 'p': "> \r <", | |
\ } | |
let g:surround_custom_mapping.ruby = { | |
\ '-': "<% \r %>", | |
\ '=': "<%= \r %>", | |
\ '9': "(\r)", | |
\ '5': "%(\r)", | |
\ '%': "%(\r)", | |
\ 'w': "%w(\r)", | |
\ '#': "#{\r}", | |
\ '3': "#{\r}", | |
\ 'e': "begin \r end", | |
\ 'E': "<<EOS \r EOS", | |
\ 'i': "if \1if\1 \r end", | |
\ 'u': "unless \1unless\1 \r end", | |
\ 'c': "class \1class\1 \r end", | |
\ 'm': "module \1module\1 \r end", | |
\ 'd': "def \1def\1\2args\r..*\r(&)\2 \r end", | |
\ 'p': "\1method\1 do \2args\r..*\r|&| \2\r end", | |
\ 'P': "\1method\1 {\2args\r..*\r|&|\2 \r }", | |
\ } | |
let g:surround_custom_mapping.javascript = { | |
\ 'f': "function(){ \r }" | |
\ } | |
let g:surround_custom_mapping.lua = { | |
\ 'f': "function(){ \r }" | |
\ } | |
let g:surround_custom_mapping.python = { | |
\ 'p': "print( \r)", | |
\ '[': "[\r]", | |
\ } | |
let g:surround_custom_mapping.vim= { | |
\'f': "function! \r endfunction" | |
\ } | |
"}}} | |
"}}} | |
"------------------------------------ | |
" neocomplcache | |
"------------------------------------ | |
" 補完・履歴 neocomplcache "{{{ | |
set infercase | |
"---------------------------------------- | |
" neocomplcache | |
let g:neocomplcache_enable_at_startup = 1 | |
" default config"{{{ | |
let g:neocomplcache_force_overwrite_completefunc = 1 | |
let g:neocomplcache#sources#rsense#home_directory = expand('~/.bundle/rsense-0.3') | |
let g:neocomplcache_enable_camel_case_completion = 1 | |
let g:neocomplcache_enable_underbar_completion = 1 | |
let g:neocomplcache_skip_auto_completion_time = '0.3' | |
"}}} | |
" keymap {{{ | |
imap <expr><C-g> neocomplcache#undo_completion() | |
imap <expr><CR> neocomplcache#smart_close_popup() . "<CR>" . "<Plug>DiscretionaryEnd" | |
imap <silent><expr><S-TAB> pumvisible() ? "\<C-P>" : "\<S-TAB>" | |
" imap <silent><expr><TAB> pumvisible() ? "\<C-N>" : "\<TAB>" | |
imap <expr><TAB> neosnippet#expandable() ? "\<Plug>(neosnippet_jump_or_expand)" : pumvisible() ? "\<C-n>" : "\<TAB>" | |
" }}} | |
"}}} | |
"------------------------------------ | |
" neosnippet | |
"------------------------------------ | |
" neosnippet "{{{ | |
" snippetを保存するディレクトリを設定してください | |
" example | |
" let s:default_snippet = neobundle#get_neobundle_dir() . '/neosnippet/autoload/neosnippet/snippets' " 本体に入っているsnippet | |
" let s:my_snippet = '~/snippet' " 自分のsnippet | |
" let g:neosnippet#snippets_directory = s:my_snippet | |
" let g:neosnippet#snippets_directory = s:default_snippet . ',' . s:my_snippet | |
imap <silent><C-F> <Plug>(neosnippet_expand_or_jump) | |
inoremap <silent><C-U> <ESC>:<C-U>Unite snippet<CR> | |
nnoremap <silent><Space>e :<C-U>NeoSnippetEdit -split<CR> | |
smap <silent><C-F> <Plug>(neosnippet_expand_or_jump) | |
" xmap <silent>o <Plug>(neosnippet_register_oneshot_snippet) | |
"}}} | |
"------------------------------------ | |
" vim-rails | |
"------------------------------------ | |
""{{{ | |
"有効化 | |
let g:rails_default_file='config/database.yml' | |
let g:rails_level = 4 | |
let g:rails_mappings=1 | |
let g:rails_modelines=0 | |
" let g:rails_some_option = 1 | |
" let g:rails_statusline = 1 | |
" let g:rails_subversion=0 | |
" let g:rails_syntax = 1 | |
" let g:rails_url='http://localhost:3000' | |
" let g:rails_ctags_arguments='--languages=-javascript' | |
" let g:rails_ctags_arguments = '' | |
function! SetUpRailsSetting() | |
nnoremap <buffer><Space>r :R<CR> | |
nnoremap <buffer><Space>a :A<CR> | |
nnoremap <buffer><Space>m :Rmodel<Space> | |
nnoremap <buffer><Space>c :Rcontroller<Space> | |
nnoremap <buffer><Space>v :Rview<Space> | |
nnoremap <buffer><Space>p :Rpreview<CR> | |
endfunction | |
aug MyAutoCmd | |
au User Rails call SetUpRailsSetting() | |
aug END | |
aug RailsDictSetting | |
au! | |
aug END | |
"}}} | |
"------------------------------------ | |
" Unite-rails.vim | |
"------------------------------------ | |
"{{{ | |
function! UniteRailsSetting() | |
nnoremap <buffer><C-H><C-H><C-H> :<C-U>Unite rails/view<CR> | |
nnoremap <buffer><C-H><C-H> :<C-U>Unite rails/model<CR> | |
nnoremap <buffer><C-H> :<C-U>Unite rails/controller<CR> | |
nnoremap <buffer><C-H>c :<C-U>Unite rails/config<CR> | |
nnoremap <buffer><C-H>s :<C-U>Unite rails/spec<CR> | |
nnoremap <buffer><C-H>m :<C-U>Unite rails/db -input=migrate<CR> | |
nnoremap <buffer><C-H>l :<C-U>Unite rails/lib<CR> | |
nnoremap <buffer><expr><C-H>g ':e '.b:rails_root.'/Gemfile<CR>' | |
nnoremap <buffer><expr><C-H>r ':e '.b:rails_root.'/config/routes.rb<CR>' | |
nnoremap <buffer><expr><C-H>se ':e '.b:rails_root.'/db/seeds.rb<CR>' | |
nnoremap <buffer><C-H>ra :<C-U>Unite rails/rake<CR> | |
nnoremap <buffer><C-H>h :<C-U>Unite rails/heroku<CR> | |
endfunction | |
aug MyAutoCmd | |
au User Rails call UniteRailsSetting() | |
aug END | |
"}}} | |
"---------------------------------------- | |
" vim-ref | |
"---------------------------------------- | |
"{{{ | |
let g:ref_open = 'split' | |
let g:ref_refe_cmd = expand('~/.vim/ref/ruby-ref1.9.2/refe-1_9_2') | |
nnoremap rr :<C-U>Unite ref/refe -default-action=split -input= | |
nnoremap ri :<C-U>Unite ref/ri -default-action=split -input= | |
aug MyAutoCmd | |
au FileType ruby,eruby,ruby.rspec nnoremap <silent><buffer>KK :<C-U>Unite -no-start-insert ref/ri -input=<C-R><C-W><CR> | |
au FileType ruby,eruby,ruby.rspec nnoremap <silent><buffer>K :<C-U>Unite -no-start-insert ref/refe -input=<C-R><C-W><CR> | |
aug END | |
"}}} | |
"------------------------------------ | |
" Unite-reek, Unite-rails_best_practices | |
"------------------------------------ | |
" {{{ | |
nnoremap <silent> [unite]<C-R> :<C-u>Unite -no-quit reek<CR> | |
nnoremap <silent> [unite]<C-R><C-R> :<C-u>Unite -no-quit rails_best_practices<CR> | |
" }}} | |
"}}} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment