vimscript获取第一个和最后一个可见线的编号

问题描述

| 我知道我可以分别用H和L转到当前缓冲区的第一行和最后一行。但是如何将行号传递给变量?     

解决方法

        
let topline = line(\"w0\")
let botline = line(\"w$\")
    ,        也许有更好的方法,但是如果没有别的,您可以使用
H
和ѭ2move移至那里,并使用
``
返回并获得。就像是
norm \'H\'
let top=line(\'.\')
norm \'``L\'
let bottom=line(\'.\')
norm \'``\'
或者您可以使用
getpos()
存储并使用
setpos()
恢复位置,但是我不确定您可以避免破坏先前的位置标记(
:keepmarks
命令应该这样做,但是文档说明它仅在某些特殊情况下有效) 。