" Freedom of movement in visual block mode set virtualedit=block " Smart way to move between windows " Enchancing these mapping with vertical maximisation (_) is interesting noremap j noremap k noremap h noremap l " Adjust viewports to the same size map = = " Easier horizontal scrolling map zl zL map zh zH " Easier jumping to beginning and end of line map H ^ map L $ " Make movements operate on 1 screen line in wrap mode nnoremap j ScreenMovement("j") nnoremap k ScreenMovement("k") nnoremap 0 ScreenMovement("0") nnoremap ^ ScreenMovement("^") nnoremap $ ScreenMovement("$") onoremap j ScreenMovement("j") onoremap k ScreenMovement("k") onoremap 0 ScreenMovement("0") onoremap ^ ScreenMovement("^") onoremap $ ScreenMovement("$") xnoremap j ScreenMovement("j") xnoremap k ScreenMovement("k") xnoremap 0 ScreenMovement("0") xnoremap ^ ScreenMovement("^") xnoremap $ ScreenMovement("$") function! ScreenMovement(movement) if &wrap return 'g' . a:movement else return a:movement endif endfunction