仅在非空行上激发的Emacs宏

仅在非空行上激发的Emacs宏,emacs,macros,Emacs,Macros,通常,我会编写简短的宏,例如添加或删除行注释或在行上更正缩进 然而,在启用空白模式的情况下,我仍然必须注意不要在空行上触发这些宏;如果宏试图删除空行上的字符,通常会弄乱整个文档 这个问题有没有解决办法,不需要在空行上留一些空格,或者改变我的文档结构?您可以使用C-M-s^。在宏的开头。也就是说,搜索至少包含一个字符的行。您可以使用C-M-s^。在宏的开头。也就是说,搜索至少包含一个字符的行。在上展开-以下是一个版本,该版本还会通知是否没有前一行: defun goto前一个非空行 互动的 如果向

通常,我会编写简短的宏,例如添加或删除行注释或在行上更正缩进

然而,在启用空白模式的情况下,我仍然必须注意不要在空行上触发这些宏;如果宏试图删除空行上的字符,通常会弄乱整个文档

这个问题有没有解决办法,不需要在空行上留一些空格,或者改变我的文档结构?

您可以使用C-M-s^。在宏的开头。也就是说,搜索至少包含一个字符的行。

您可以使用C-M-s^。在宏的开头。也就是说,搜索至少包含一个字符的行。

在上展开-以下是一个版本,该版本还会通知是否没有前一行:

defun goto前一个非空行 互动的 如果向后搜索^。零t 消息前一个非空行 缓冲区的消息开始 在上展开-这是一个版本,如果之前没有任何行,它也会通知:

defun goto前一个非空行 互动的 如果向后搜索^。零t 消息前一个非空行 缓冲区的消息开始
空白不算作字符吗?也许像这样的:^[^]会起作用。空白不算字符吗?也许像这样的:^[^]会起作用。