首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >emacs lisp和c-mode:我什么时候在注释区

emacs lisp和c-mode:我什么时候在注释区
EN

Stack Overflow用户
提问于 2012-10-10 17:09:37
回答 2查看 305关注 0票数 8

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-10 21:20:12

解决这个问题的方法是使用syntax-ppss,它可以在C/C++和大多数主要模式下工作。例如,当且仅当你不在字符串或注释中时,(null (nth 8 (syntax-ppss)))才是非空的。

票数 10
EN

Stack Overflow用户

发布于 2012-10-10 19:29:03

代码语言:javascript
复制
(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))))))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12815781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档