当我开始使用新程序时,光标最终会到达屏幕的底部。我希望它保持在中心位置,我在vimrc文件中进行了以下操作。
autocmd InsertEnter * :set scrolloff=9999
autocmd InsertLeave * :set scrolloff=0
但是当我在代码中进行少量更改时,光标会跳到屏幕中间,这有点烦人。我想知道,在vim执行上述命令之前,如何检查下一个空行(比如5)的条件,即set scrolloff
。我可以在编写新代码时从底部的5个空白行开始。
答案 0 :(得分:1)
要确定光标远离当前窗口底部的行数,可以使用
:echo winheight(0) - winline()
所以,如果光标只在最后5行中跳到中间,你可以使用:
autocmd InsertEnter * if winheight(0) - winline() < 5 | set scrolloff=9999 | endif
我不完全了解您使用空白行记住了哪种情况,但您可以使用empty(getline(lnum))
检查各行。此外,内置函数prevnonblank()
/ nextnonblank()
可能很有用。