screenmovement.vim 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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. map H ^
  30. map L $
  31. " Make movements operate on 1 screen line in wrap mode
  32. nnoremap <silent> <expr> j ScreenMovement("j")
  33. nnoremap <silent> <expr> k ScreenMovement("k")
  34. nnoremap <silent> <expr> 0 ScreenMovement("0")
  35. nnoremap <silent> <expr> ^ ScreenMovement("^")
  36. nnoremap <silent> <expr> $ ScreenMovement("$")
  37. onoremap <silent> <expr> j ScreenMovement("j")
  38. onoremap <silent> <expr> k ScreenMovement("k")
  39. onoremap <silent> <expr> 0 ScreenMovement("0")
  40. onoremap <silent> <expr> ^ ScreenMovement("^")
  41. onoremap <silent> <expr> $ ScreenMovement("$")
  42. xnoremap <silent> <expr> j ScreenMovement("j")
  43. xnoremap <silent> <expr> k ScreenMovement("k")
  44. xnoremap <silent> <expr> 0 ScreenMovement("0")
  45. xnoremap <silent> <expr> ^ ScreenMovement("^")
  46. xnoremap <silent> <expr> $ ScreenMovement("$")
  47. function! ScreenMovement(movement)
  48. if &wrap
  49. return 'g' . a:movement
  50. else
  51. return a:movement
  52. endif
  53. endfunction