如何在Emacs Lisp中检查点是否位于缩进点?

如何在Emacs Lisp中检查点是否位于缩进点?,emacs,elisp,Emacs,Elisp,是否有功能测试当前点是否在缩进点?i、 e.点是返回缩进的可能结果。如果点位于当前行的第一个非空白字符处,则以下代码将返回t,否则返回nil: (looking-back "^\\s-*") 如果point位于当前行的第一个非空白字符处,则以下代码将返回t,否则返回nil: (looking-back "^\\s-*") 我记不起这样的函数了。我会用 (and (looking-at "[^ \t]\\|$") (save-excursion (skip-chars-backwar

是否有功能测试当前点是否在缩进点?i、 e.点是返回缩进的可能结果。

如果点位于当前行的第一个非空白字符处,则以下代码将返回t,否则返回nil:

(looking-back "^\\s-*")

如果point位于当前行的第一个非空白字符处,则以下代码将返回t,否则返回nil:

(looking-back "^\\s-*")

我记不起这样的函数了。我会用

(and (looking-at "[^ \t]\\|$")
     (save-excursion (skip-chars-backward " \t") (bolp)))

请注意,使用回溯是可行的,但回溯在算法上效率低下,因此在某些病理情况下可能会非常缓慢。

我记不起这样的函数。我会用

(and (looking-at "[^ \t]\\|$")
     (save-excursion (skip-chars-backward " \t") (bolp)))
(defun point-at-indentation-p ()
  (if (= (save-excursion (back-to-indentation) (point)) (point))
      (message "I'm at indentation")
    (message "I'm elsewhere")))
请注意,使用回溯是可行的,但回溯在算法上效率低下,因此在某些病理情况下可能会非常缓慢

(defun point-at-indentation-p ()
  (if (= (save-excursion (back-to-indentation) (point)) (point))
      (message "I'm at indentation")
    (message "I'm elsewhere")))
看起来很简单。。。不知道为什么要换一种方式


看起来很简单。。。不知道为什么要换一种方式。

返回缩进将光标移动到第一个非空白字符。想知道点是否是第一个非空白字符吗?返回缩进将光标移动到第一个非空白字符。你想知道点是否是第一个非空白字符吗?我忘了保存偏移!谢谢我忘了旅行了!谢谢