在Emacs中搜索简单的变量名称,如“c”或“x”

时间:2010-03-24 16:58:07

标签: regex emacs

我经常希望搜索简单称为“c”或“count”的变量。

例如

int c, count;

不幸的是,当我使用'c'或'count'的增量搜索时,我会得到很多不必要的命中,例如'choice'中的'c',或'wordcount'中的'count',我不感兴趣。我知道Emacs可以使用正则表达式进行i-searching,但我不知道匹配'c'和'count'所需的正确正则表达式。这些单词通常被任意数量的空格所包围。有人知道我可以用来缩小搜索范围的正则表达式吗?

4 个答案:

答案 0 :(得分:7)

使用isearch-forward-regexp,通常绑定到 C-M-s ,然后搜索\bc\b\bcount\b

答案 1 :(得分:6)

在Emacs23中,有 Mx isearch-forward-word (绑定到 Ms w ),它会为你处理单词边界(在前面)。< / p>

M-s w count

而且,Andrew Stein使用isearch-forward-regexp的{​​{3}}的另一个键盘快捷键是 C-u C-s

答案 2 :(得分:2)

您希望搜索(isearch-forward-regexp)您的字符串,其中包含字边界(\b):

\bc\b

\bcount\b

答案 3 :(得分:0)

其他人告诉你如何搜索你想要的东西。以下是我的建议:从现在开始,只需 don't do it - 不要在第一次创建需要进行此类搜索的地方。

30年前,我停止使用xi等变量名称。如果变量不能或不需要被命名为更有用的东西,那么我只需将其命名为xxii

这个简单的技巧减少了很多愚蠢的正则表达式搜索,例如本页描述的(正确的)。

通常没有理由做这样的事情。我想,通常单个字母只是出于懒惰而使用。但这种做法最终意味着更多的努力。

只是一个建议......

(现在显然有些字母不是那么简单的处理。例如,nn在英语单词中很常见。用你的判断。)