如果位于文件末尾,则滚动而不是移动光标

如果位于文件末尾,则滚动而不是移动光标

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'

相关内容