for going pseudo-linewise in wraps you can change:
noremap j gj
noremap k gk
and add
set scrolloff = 3 " so you always have 3 lines on bottom and top or
set scrolloff = 999 " to have the cursor(line) always in the middle
and for finding the position put this in your .vimrc
set cursorline
if &term =~ "xterm\\|rxvt"
" use a green cursor in insert mode
let &t_SI = "\<Esc>]12;green\x7"
" use an orange cursor otherwise
let &t_EI = "\<Esc>]12;orange\x7"
silent !echo -ne "\033]12;orange\007"
" reset cursor when vim exits
autocmd VimLeave * silent !echo -ne "\033]12;white\007"
" use \003]12;gray\007 for gnome-terminal
endif
it makes the cursor green in insert mode and orange otherwise - those \<esc>]12;green\x7
are just to tell the terminal it should do that - in the language of australopithici or something, because that's how old terminals are ;-).
and this in your .gvimrc
highlight Cursor guifg=black guibg=DarkOrange
highlight iCursor guifg=black guibg=Green
set guicursor=n-v-c:block-Cursor
set guicursor+=i:ver100-iCursor
set guicursor+=n-v-c:blinkon0
set guicursor+=i:blinkwait0
well the last three lines are not necessary but i dislike blinking