現在の行が空であるかどうかを確認したいだけです(空白のみが含まれている場合は、空であると見なします)。
これが私の初期バージョンです。
(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
@YoungFrog、またの
—
カウシャルモディ
\\s-
代わりになり\\s
ます。そのハイフンは、elisp正規表現で必要です。
\s
は、書き込みはwriting と同等s
です。おそらくあなたが意味した"^\\s*$"
。