Skip to content

Instantly share code, notes, and snippets.

@esparkman
Last active December 17, 2015 01:39
Show Gist options
  • Save esparkman/5529973 to your computer and use it in GitHub Desktop.
Save esparkman/5529973 to your computer and use it in GitHub Desktop.
if (has('gui_running'))
set guifont=Source\ Code\ Pro:h12
set guioptions-=T
set columns=120
set lines=70
set number
set relativenumber
" colorscheme molokai
set undofile
endif
set ts=8
set sw=2
set expandtab
set smarttab
set splitright
set splitbelow
set wildmode=list:longest,full
set visualbell
iabbrev rde require 'ruby-debug'; Debugger.start; debugger
iabbrev bpry require 'pry'; binding.pry
iabbrev brpry require 'pry-remote'; binding.remote_pry
nnoremap <silent> <C-K> :%s/\s\+$//e<CR><C-K>
nnoremap K k
xnoremap K k
inoremap <up> <nop>
inoremap <down> <nop>
inoremap <left> <nop>
inoremap <right> <nop>
noremap <up> <nop>
noremap <down> <nop>
noremap <left> <nop>
noremap <right> <nop>
autocmd User Rails Rnavcommand emitter app/emitters -suffix=_emitter.rb -default=model()
autocmd User Rails Rnavcommand renderer app/renderers -suffix=_renderer.rb -default=model()
autocmd User Rails Rnavcommand strategy app/strategies -suffix=_strategy.rb -default=model()
autocmd User Rails Rnavcommand notifier app/notifiers -suffix=_notifier.rb -default=model()
autocmd User Rails Rnavcommand validator app/validators -suffix=_validator.rb -default=model()
inoremap <silent> <Bar> <Bar><Esc>:call <SID>align()<CR>a
function! s:align()
let p = '^\s*|\s.*\s|\s*$'
if exists(':Tabularize') && getline('.') =~# '^\s*|' && (getline(line('.')-1) =~# p || getline(line('.')+1) =~# p)
let column = strlen(substitute(getline('.')[0:col('.')],'[^|]','','g'))
let position = strlen(matchstr(getline('.')[0:col('.')],'.*|\s*\zs.*'))
Tabularize/\\\@<!|/l1
normal! 0
call search(repeat('[^|]*|',column).'\s\{-\}'.repeat('.',position),'ce',line('.'))
endif
endfunction
if has('persistent_undo')
set undofile
set undodir^=~/.vim/tmp//,~/Library/Vim/undo
endif
let g:rubycomplete_buffer_loading = 1
let g:rubycomplete_rails = 1
if !exists('g:rails_projections')
let g:rails_projections = {}
endif
call extend(g:rails_projections, {
\ "app/presenters/*.rb": {
\ "command": "presenter",
\ "test": "spec/presenter/%s_spec.rb",
\ "alternate": "spec/presenter/%s_spec.rb",
\ "template": "class %S\nend" }
\ }, 'keep')
if !exists('g:rails_gem_projections')
let g:rails_gem_projections = {}
endif
call extend(g:rails_gem_projections, {
\ "active_model_serializers": {
\ "app/serializers/*_serializer.rb": {
\ "command": "serializer",
\ "template": "class %SSerializer < ActiveModel::Serializer\nend",
\ "affinity": "model"}},
\ "rspec": {
\ "spec/support/*.rb": {
\ "command": "support"}},
\ "cucumber": {
\ "features/*.feature": {
\ "command": "feature",
\ "template": "Feature: %h"},
\ "features/support/*.rb": {
\ "command": "support"},
\ "features/support/env.rb": {
\ "command": "support"},
\ "features/step_definitions/*_steps.rb": {
\ "command": "steps"}},
\ "carrierwave": {
\ "app/uploaders/*_uploader.rb": {
\ "command": "uploader",
\ "template": "class %SUploader < CarrierWave::Uploader::Base\nend"}},
\ "draper": {
\ "app/decorators/*_decorator.rb": {
\ "command": "decorator",
\ "affinity": "model",
\ "template": "class %SDecorator < ApplicationDecorator\nend"}},
\ "fabrication": {
\ "spec/fabricators/*_fabricator.rb": {
\ "command": ["fabricator", "factory"],
\ "alternate": "app/models/%s.rb",
\ "related": "db/schema.rb#%p",
\ "test": "spec/models/%s_spec.rb",
\ "template": "Fabricator :%s do\nend",
\ "affinity": "model"}},
\ "factory_girl": {
\ "spec/factories/*_factory.rb": {
\ "command": "factory",
\ "alternate": "app/models/%s.rb",
\ "related": "db/schema.rb#%p",
\ "test": "spec/models/%s_spec.rb",
\ "template": "FactoryGirl.define do\n factory :%s do\n end\nend",
\ "affinity": "model"},
\ "spec/factories.rb": {
\ "command": "factory"},
\ "test/factories.rb": {
\ "command": "factory"}}
\ }, 'keep')
command! -bar -range=% Trim :<line1>,<line2>s/\s\+$//e
command! -bar -range=% NotRocket :<line1>,<line2>s/:\(\w\+\)\s*=>/\1:/ge
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment