2

(eolp)仅适用于“硬”换行,我希望能够检查我是否在屏幕行的末尾。我认为查看 的源代码end-of-visual-line会有所帮助,但它没有:它使用内置函数vertical-motion,并且挖掘 C 源代码不是我更愿意做的事情。(当然,我可以保存点位置,转到end-of-visual-line,将点位置与保存的位置进行比较,但是有没有更好的方法?)

这将非常有用,尤其是我可以击中C-t视线的尽头而不会感到惊讶;)。

4

1 回答 1

3

可能有更好的方法,但我认为您保存点位置并与视线末端的点进行比较的想法是合理的。许多在 Emacs 中表现得像纯函数的东西实际上是通过像这样改变状态并在退出时恢复它来工作的。save-excursion特殊形式是为这种模式设计的:

(defun end-of-visual-line-p ()
  (= (point)
     (save-excursion
       (end-of-visual-line)
       (point))))
于 2013-06-10T12:14:56.013 回答