我正在查看c
中的非常大的流體動力學代碼,它經常會有一些非常差的變量選項。包含一個名爲'g'的全局變量。同樣,有一個名爲'geom'的變量以及包含子字符串'geom'(例如geometry,geomAL,geom_arb等)的許多其他變量的文件。Emacs通過精確正則表達式匹配而不是部分搜索
有什麼方法可以搜索與正則表達式完全匹配的變量,而不是部分?
例如:搜索'geom'不是匹配'geomAL'。很明顯emacs並不知道知道變量在哪裏開始或結束,但是可以將它構造爲c模式的函數嗎?
我正在查看c
中的非常大的流體動力學代碼,它經常會有一些非常差的變量選項。包含一個名爲'g'的全局變量。同樣,有一個名爲'geom'的變量以及包含子字符串'geom'(例如geometry,geomAL,geom_arb等)的許多其他變量的文件。Emacs通過精確正則表達式匹配而不是部分搜索
有什麼方法可以搜索與正則表達式完全匹配的變量,而不是部分?
例如:搜索'geom'不是匹配'geomAL'。很明顯emacs並不知道知道變量在哪裏開始或結束,但是可以將它構造爲c模式的函數嗎?
Emacs的正則表達式引擎(C-M-s個<regexp>
)具有用於這樣的事情各種操作數,如字邊界\<
和\>
零寬度斷言。因此,\<geom\>
將單獨匹配geom
,並且(取決於您的模式的語法表),也可能是geom_something
中的前綴。如果您需要排除下劃線後綴,請嘗試\<geom\>[^_]
。
您是否試用過Emacs TAGS系統?它應該能夠解析變量,並且可以提供精確的查找。在這裏看到:http://www.emacswiki.org/emacs/EmacsTags
生成與ETag的幫手的標籤表:
etags *.c
查找標籤與
M-. your-var-name
http://www.emacswiki.org/emacs/RegularExpression有,如果你想使用emacs正則表達式,你需要的幾乎所有。
您可以使用C-u C-s \_<g\_>
將使用帶有符號界碑正則表達式搜索的符號g
搜索。或者在最近足夠的Emacs中,您可以執行M-s _ g
,它們的功能基本相同(M-s
是「搜索前綴鍵」,其中M-s _
是isearch-forward-symbol
)。
http://www.emacswiki.org/emacs/RegularExpression – devnull