2

(eolp)「ハード」ラインラップでのみ機能し、スクリーンラインの最後にいるかどうかを確認できるようにしたいと考えています。end-of-visual-lineのソースコードを見ると役立つと思いますが、そうではありませんでした.組み込み関数を使用しており、 vertical-motionCソースを掘り下げることは私がやりたいことではありません. (もちろん、ポイントの位置を保存して に移動し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 に答える