" 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 $ " Move according to the screen when wrapped function! ScreenMove(move) if &wrap return 'g' . a:move else return a:move endif endfunction " Map screen moves in normal, operator-pending and visual (but not select) modes function! MapScreenMove(move) for mapmode in ['n', 'o', 'x'] execute mapmode."noremap " a:move 'ScreenMove("'.a:move.'")' endfor endfunction call MapScreenMove("j") call MapScreenMove("k") call MapScreenMove("0") call MapScreenMove("^") call MapScreenMove("$")