【发布时间】:2015-10-09 18:25:25
【问题描述】:
一般来说,我发现自己在编写简短的宏,例如添加或删除行 cmets 或纠正行上的缩进。
但是,启用空白模式后,我仍然需要注意不要在空白行上触发这些宏;如果宏试图删除空行上的字符,通常会弄乱整个文档。
对于这个问题,是否有任何解决方案不涉及在空白行上留出一定数量的空格,或者以其他方式改变我的文档结构?
【问题讨论】:
一般来说,我发现自己在编写简短的宏,例如添加或删除行 cmets 或纠正行上的缩进。
但是,启用空白模式后,我仍然需要注意不要在空白行上触发这些宏;如果宏试图删除空行上的字符,通常会弄乱整个文档。
对于这个问题,是否有任何解决方案不涉及在空白行上留出一定数量的空格,或者以其他方式改变我的文档结构?
【问题讨论】:
您可以在宏的开头使用C-M-s ^.。也就是说,搜索至少包含一个字符的行。
【讨论】:
^[^ ],可以代替。
在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")
)
)
【讨论】: