screenmovement.vim 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. " Screen Movement - Modeline and Notes {{{
  2. " vim: set sw=2 ts=2 sts=2 et tw=78 foldmarker={{{,}}} foldlevel=0 foldmethod=marker spell:
  3. "
  4. " cinaeco/dotfiles Screen Movement shortcuts
  5. "
  6. " Taken from spf13-vim
  7. "
  8. " }}}
  9. " Freedom of movement in visual block mode
  10. set virtualedit=block
  11. " Smart way to move between windows, with vertical maximisation (spf13-vim).
  12. map <C-j> <C-w>j<C-w>_
  13. map <C-k> <C-w>k<C-w>_
  14. map <C-l> <C-w>l<C-w>_
  15. map <C-h> <C-w>h<C-w>_
  16. " Smart way to move between windows, without vertical maximisation.
  17. "noremap <C-j> <C-w>j
  18. "noremap <C-k> <C-w>k
  19. "noremap <C-h> <C-w>h
  20. "noremap <C-l> <C-w>l
  21. " Adjust viewports to the same size
  22. map <Leader>= <C-w>=
  23. " Easier horizontal scrolling
  24. map zl zL
  25. map zh zH
  26. " Easier jumping to beginning and end of line
  27. map H ^
  28. map L $
  29. " Make movements operate on 1 screen line in wrap mode
  30. nnoremap <silent> <expr> j ScreenMovement("j")
  31. nnoremap <silent> <expr> k ScreenMovement("k")
  32. nnoremap <silent> <expr> 0 ScreenMovement("0")
  33. nnoremap <silent> <expr> ^ ScreenMovement("^")
  34. nnoremap <silent> <expr> $ ScreenMovement("$")
  35. onoremap <silent> <expr> j ScreenMovement("j")
  36. onoremap <silent> <expr> k ScreenMovement("k")
  37. onoremap <silent> <expr> 0 ScreenMovement("0")
  38. onoremap <silent> <expr> ^ ScreenMovement("^")
  39. onoremap <silent> <expr> $ ScreenMovement("$")
  40. xnoremap <silent> <expr> j ScreenMovement("j")
  41. xnoremap <silent> <expr> k ScreenMovement("k")
  42. xnoremap <silent> <expr> 0 ScreenMovement("0")
  43. xnoremap <silent> <expr> ^ ScreenMovement("^")
  44. xnoremap <silent> <expr> $ ScreenMovement("$")
  45. function! ScreenMovement(movement)
  46. if &wrap
  47. return 'g' . a:movement
  48. else
  49. return a:movement
  50. endif
  51. endfunction