home

Code Library

function! SaveMacroA(filename)
  let macro_content = getreg('a')
  call writefile([macro_content], a:filename)
endfunction
function! SaveMacroB(filename)
  let macro_content = getreg('b')
  call writefile([macro_content], a:filename)
endfunction
function! SaveMacroC(filename)
  let macro_content = getreg('c')
  call writefile([macro_content], a:filename)
endfunction
function! LoadMacroA(filename)
  if filereadable(a:filename)
      let macro_content = readfile(a:filename)
      if !empty(macro_content)
        call setreg('a', macro_content[0])
      endif
  endif
endfunction
function! LoadMacroB(filename)
  if filereadable(a:filename)
      let macro_content = readfile(a:filename)
      if !empty(macro_content)
        call setreg('b', macro_content[0])
      endif
  endif
endfunction
function! LoadMacroC(filename)
  if filereadable(a:filename)
      let macro_content = readfile(a:filename)
      if !empty(macro_content)
        call setreg('c', macro_content[0])
      endif
  endif
endfunction

function! DefineMacroAPrompt()
  let l:sz = input("macro 'a' text ")
  call setreg('a', l:sz)
  call SaveMacroA("/home/mestes/.vim/macros/macro_a.vim")
  nnoremap a         :normal! @ab
endfunction
function! DefineMacroBPrompt()
  let l:sz = input("macro 'b' text ")
  call setreg('b', l:sz)
  call SaveMacroB("/home/mestes/.vim/macros/macro_b.vim")
  nnoremap b         :normal! @bb
endfunction
function! DefineMacroCPrompt()
  let l:sz = input("macro 'c' text ")
  call setreg('c', l:sz)
  call SaveMacroC("/home/mestes/.vim/macros/macro_c.vim")
  nnoremap c         :normal! @cb
endfunction

call LoadMacroA("/home/mestes/.vim/macros/macro_a.vim")
call LoadMacroB("/home/mestes/.vim/macros/macro_b.vim")
call LoadMacroC("/home/mestes/.vim/macros/macro_c.vim")
nnoremap A         :call DefineMacroAPrompt()
nnoremap B         :call DefineMacroBPrompt()
nnoremap C         :call DefineMacroCPrompt()