一般来说,我发现自己写的是短宏,例如:在一行上添加或删除行注释或更正缩进。
然而,在启用空白模式的情况下,我仍然需要注意不要在空行上触发这些宏;如果宏试图删除空行上的字符,通常会弄乱整个文档。
这个问题是否有任何解决办法,不涉及在空白行上留出一些空格,或以其他方式改变我的文件结构?
答案 0 :(得分:3)
您可以在宏的开头使用C-M-s ^.
。也就是说,搜索包含至少一个字符的行。
答案 1 :(得分:1)
扩展legoscia's answer - 这是一个版本,它也会通知是否根本没有上一行:
(defun goto-first-previous-non-empty-line ()
(interactive)
(if (re-search-backward "^." nil t)
(message "First previous non-empty line")
(message "Beginning of buffer")
)
)