我只想检查当前行是否为空(如果它仅包含空格,那么我仍然认为它为空)。
这是我的初始版本:
(defun strip-text-properties(txt)
(set-text-properties 0 (length txt) nil txt)
txt)
(defun is-current-line-empty ()
(interactive)
(setq c-line (thing-at-point 'line))
(string-match "^\s*$" (strip-text-properties c-line)))
检查当前行是否为空的最简单方法是什么?
作为一般性评论,elisp的会更有意义,一旦你对行动等方面开始思考缓冲区,而不是(如人们往往在其他语言做)做的事情串。隔离和提取字符串以执行某些测试很可能(a)效率低下,并且(b)大大减少了您可以使用的工具数量。Elisp 确实擅长直接在缓冲区的内容上执行操作。
—
phils 2015年
@YoungFrog,也应该
—
Kaushal Modi
\\s-
代替\\s
。在elisp regexp中需要连字符。
\s
等同于Writings
。也许你是说"^\\s*$"
。