我想知道光标相对于窗口顶部的垂直位置。我试过这个
(defun cursor-line-in-window ()
(save-excursion
(let* ((current-line (line-number-at-pos (point)))
(top-of-window-line (progn (move-to-window-line 0)
(line-number-at-pos (point)))))
(- current-line top-of-window-line))))
它工作正常,除非我在一个组织模式文件中,其中几行折叠在标题下。所以我想要:
1:找到计算范围内可见线数的方法,或
2:找到一个直接给我垂直位置的函数。
答案 0 :(得分:2)
查看(nth 6 (posn-at-point))
,该对应(COL . ROW)
。
答案 1 :(得分:1)
这里有一个非常优雅的解决方案:
(defun cursor-line-in-window ()
(save-excursion
(beginning-of-line)
(let ((pos (point))
(r 0))
(move-to-window-line 0)
(while (<= (point) pos)
(next-line 1)
(beginning-of-line)
(incf r))
r)))