高亮显示的文本是我要在其中移动的数组。我必须先按g再按j才能向下移动一行。我的.vimrc是否有一些映射,我可以使用hjkl在屏幕行中移动而无需每次都按g。

谢谢你的帮助
马蒂亚斯

最佳答案

我使用以下片段来帮助进行所有形式的导航,包括诸如$到行尾之类的内容。

" mapping to make movements operate on 1 screen line in wrap mode
function! ScreenMovement(movement)
   if &wrap
      return "g" . a:movement
   else
      return a:movement
   endif
endfunction
onoremap <silent> <expr> j ScreenMovement("j")
onoremap <silent> <expr> k ScreenMovement("k")
onoremap <silent> <expr> 0 ScreenMovement("0")
onoremap <silent> <expr> ^ ScreenMovement("^")
onoremap <silent> <expr> $ ScreenMovement("$")
nnoremap <silent> <expr> j ScreenMovement("j")
nnoremap <silent> <expr> k ScreenMovement("k")
nnoremap <silent> <expr> 0 ScreenMovement("0")
nnoremap <silent> <expr> ^ ScreenMovement("^")
nnoremap <silent> <expr> $ ScreenMovement("$")

10-06 13:30