【问题标题】:Emacs macro that only fires on non-empty lines仅在非空行上触发的 Emacs 宏
【发布时间】:2015-10-09 18:25:25
【问题描述】:

一般来说,我发现自己在编写简短的宏,例如添加或删除行 cmets 或纠正行上的缩进。

但是,启用空白模式后,我仍然需要注意不要在空白行上触发这些宏;如果宏试图删除空行上的字符,通常会弄乱整个文档。

对于这个问题,是否有任何解决方案不涉及在空白行上留出一定数量的空格,或者以其他方式改变我的文档结构?

【问题讨论】:

    标签: emacs macros


    【解决方案1】:

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

    【讨论】:

    • 空格不算字符吗?也许像这样:^[^ ],可以代替。
    【解决方案2】:

    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")
          )
        )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-08
      • 2014-04-13
      相关资源
      最近更新 更多