function! s:selectwordfoward() abort
normal! wvel
endfunction
function! s:selectwordbackward() abort
call search('\S', 'b')
normal! vb
endfunction
nnoremap <silent>w :<C-u>call <SID>selectwordfoward()<CR>
vnoremap <silent>w :<C-u>call <SID>selectwordfoward()<CR>
nnoremap <silent>b :<C-u>call <SID>selectwordbackward()<CR>
vnoremap <silent>b :<C-u>call <SID>selectwordbackward()<CR>
vnoremap <silent>j :<C-u>normal! j<CR>
vnoremap <silent>k :<C-u>normal! k<CR>
vnoremap <silent>h :<C-u>normal! h<CR>
vnoremap <silent>l :<C-u>normal! l<CR>
" or
" vnoremap <silent>l <Esc>l