8

我想在 ac/c++ 缓冲区中搜索正则表达式,但我想避免表达式匹配注释区域。有没有办法使用 c 模式来知道一堆文本是否在评论区域内(或者一个点在评论区域内)?

4

2 回答 2

10

弄清楚这一点的方法是syntax-ppss在 C/C++ 和大多数主要模式下工作。当且仅当您不在字符串或注释中时,例如(null (nth 8 (syntax-ppss)))将是非零。

于 2012-10-10T13:20:12.047 回答
0
(defun re-search-forward-not-in-comment (regexp)
  "Search forward first regexp not inside a comment. "
  (interactive
   (list (read-from-minibuffer "Regexp: ")))
  (while (and (re-search-forward regexp nil t 1)
          (and (nth 8 (syntax-ppss))(nth 4 (syntax-ppss))))))
于 2012-10-10T11:29:02.740 回答