j
当我位于文件底部时,我发现自己无意中按下了(或其他一些向下光标移动键)。然后我要做的下一件事是点击Ctrl-E
将当前行向上滚动 - 我什至可能只是点击zt
将当前行移动到窗口顶部。
我的问题是:当我点击文件的最后一行时,有没有一种方法可以配置 vim 自动滚动(Ctrl-W
在这种情况下我可以使用)?j
我知道已经有类似的问题了,但答案是将光标保留在屏幕中间,这不是我想要做的。
答案1
您可以使用“expr”映射来检查您是否位于缓冲区的最后一行并在这种情况下映射j
到。<C-e>
nnoremap <expr> j line('.') ==# line('$') ? '<C-e>' : 'j'
如果您希望它在可视模式下也以相同的方式工作,请也重复该命令xnoremap
。
xnoremap <expr> j line('.') ==# line('$') ? '<C-e>' : 'j'