Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 5th, 2012  |  syntax: None  |  size: 1.43 KB  |  hits: 14  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. if exists('g:loaded_window_manager') || &cp || ! has('gui_macvim')
  2.   finish
  3. endif
  4. let g:loaded_window_manager = 1
  5.  
  6.  
  7. function! s:ResizeWindow(direction, ...)
  8.   let steps = a:0 ? a:1 : 10
  9.  
  10.   if a:direction == 'x+'
  11.     exe 'set columns+='.steps
  12.   elseif a:direction == 'x-'
  13.     exe 'set columns-='.steps
  14.   elseif a:direction == 'y+'
  15.     exe 'set lines-='.steps
  16.   elseif a:direction == 'y-'
  17.     exe 'set lines+='.steps
  18.   endif
  19. endfunction
  20.  
  21. command! -nargs=+ Guiresize call s:ResizeWindow(<f-args>)
  22.  
  23. silent! map <unique> <silent> <C-M-l> :Guiresize x+<cr>
  24. silent! map <unique> <silent> <C-M-h> :Guiresize x-<cr>
  25. silent! map <unique> <silent> <C-M-k> :Guiresize y+<cr>
  26. silent! map <unique> <silent> <C-M-j> :Guiresize y-<cr>
  27.  
  28. function! s:MoveWindow(direction, ...)
  29.   let pixels = a:0 ? a:1 : 20
  30.  
  31.   if a:direction == 'left'
  32.     let newpos = (getwinposx() - pixels).' '.getwinposy()
  33.   elseif a:direction == 'right'
  34.     let newpos = (getwinposx() + pixels).' '.getwinposy()
  35.   elseif a:direction == 'up'
  36.     let newpos = getwinposx().' '.(getwinposy() + pixels)
  37.   elseif a:direction == 'down'
  38.     let newpos = getwinposx().' '.(getwinposy() - pixels)
  39.   endif
  40.   exe 'winpos '.newpos
  41. endfunction
  42.  
  43. command! -nargs=+ Guinudge call s:MoveWindow(<f-args>)
  44.  
  45. silent! map <unique> <silent> <M-l> :Guinudge right<cr>
  46. silent! map <unique> <silent> <M-h> :Guinudge left<cr>
  47. silent! map <unique> <silent> <M-k> :Guinudge up<cr>
  48. silent! map <unique> <silent> <M-j> :Guinudge down<cr>