function! s:AddParameter() let name = input("parameter name: ") let cursor_position = getpos(".") if empty(matchstr(getline("."), '\')) exec "?\\" endif let closing_bracket_index = stridx(getline("."), "(") if closing_bracket_index == -1 execute "normal A()\" endif exec ':s/)/, ' . name . ')/' exec ':silent! %s/(, /(/' call setpos(".", cursor_position) endfunction function! s:InlineTemp() let cursor_position = getpos(".") normal "ayiw normal $"byiW normal dd exec ":.,/end/ s/\\<" . @a . "\\>/" . @b . "/gI" call setpos(".", cursor_position) endfunction function! s:ExtractLet() let cursor_position = getpos(".") normal 0 normal! dd exec "?^\\s*\\<\\(describe\\|context\\|let\\)\\>" normal! $p exec 's/\v([a-z_][a-zA-Z0-9_]*) \= (.+)/let(:\1) { \2 }' normal V= call setpos(".", cursor_position) normal jw endfunction function! s:RenameVariable() let cursor_position = getpos(".") let name = input("new name: ") normal "ayiw exec ":.,/end/ s/\\<" . @a . "\\>/" . name . "/gI" call setpos(".", cursor_position) endfunction command! RAddParameter call s:AddParameter() command! RInlineTemp call s:InlineTemp() command! RExtractLet call s:ExtractLet() command! RRenameVariable call s:RenameVariable() " run rspec test nnoremap run :!rspec % nnoremap t :VroomRunNearestTest nnoremap ta :VroomRunTestFile " ruby refactorings nnoremap rap :RAddParameter nnoremap rit :RInlineTemp nnoremap rel :RExtractLet nnoremap rrlv :RRenameVariable " \c comment out line. nnoremap c I#