我已經開始使用elisp在Emacs中創建字體鎖定(語法高亮)。大部分教程都提到使用elisp函數「regexp-opt」來優化正則表達式,但是我的emacs版本(23.2)似乎沒有這個功能。此外,谷歌搜索答案似乎沒有得到有用的結果。有任何想法嗎?emacs中缺少regexp-opt函數?
2
A
回答
6
正如你可以通過C-h f regexp-opt
發現:
正則表達式-opt是一個編譯Lisp的 功能。
(正則表達式,選擇字符串&可選的括號)
返回一個正則表達式中 列表中的字符串相匹配的字符串。每個字符串應該是 在字符串中是唯一的,並且不應該包含任何引用或不引用的正則表達式。 如果可選paren非零,請確保 返回的正則表達式至少包含 至少一個正則表達式分組 構造。返回的正則表達式是 通常比 相當於正則表達式更高效:
(讓((打開(如果括號 「\(」 「」)) (接近(如果括號 「\)」, 「」)))
(開放的concat(mapconcat '的regexp引號 字符串 「\ |」)接近))如果括號是`詞語',則 所得的regexp是另外 通過\ <和>包圍。
請注意,這是在Lisp代碼中使用的函數,而不是一個交互式命令,你可以用M-x
5
regexexp拉攏運行是一個elisp的功能,但不是一個emacs的命令。這就是爲什麼你不能通過運行來執行它:M-x regexp-opt
但是,你可以從elisp shell執行任何elisp函數。鍵入M-x eshell。從這個shell中你可以運行正則表達式
0
正如其他人所說,regexp-opt
不是一個命令(所以你不能使用M-x
調用它)。但是您可以使用M-:
以交互方式調用它的應用程序。
例如,M-: (regexp-opt '("foo" "toto" "blat" "total" "mistral")) RET
返回正則表達式"\\(?:blat\\|foo\\|mistral\\|tot\\(?:al\\|o\\)\\)"
。
相關問題
- 1. PHP中缺少Session_start函數
- 2. fftpack中缺少scipy函數
- 3. 在PHP函數中缺少參數?
- 4. 計數中缺少函數錯誤
- 5. PHP中缺少參數$ _POST函數
- 6. Statsmodels API:缺少SARIMAX函數
- 7. 缺少函數返回'UIImage'
- 8. DialogPreference缺少構造函數
- 9. 替代缺少setOnDateChangeListener() - 函數
- 10. 缺少dll函數檢測
- 11. 缺少函數頭C++
- 12. PHP缺少mb_strpos函數?
- 13. Haskell - 缺少函數中的模式
- 14. 轉換函數中缺少表達式
- 15. 在Xcode中缺少導入函數SCM?
- 16. 在Django中缺少'Median'聚合函數?
- 17. 在函數中缺少返回 - 模型
- 18. WinCE ASP服務器中缺少函數
- 19. Emacs的css模式語法表缺少?
- 20. GroupBy Datepart函數缺少數據
- 21. Azure函數 - VS2017工具 - 在函數.json中缺少綁定
- 22. JSLint - 忽略缺少的函數名稱
- 23. 缺少的函數生成的文件
- 24. 缺少構造函數初始化
- 25. 從GProf輸出缺少函數
- 26. C#DLL缺少公共函數
- 27. 缺少某些Neo4j標量函數
- 28. 缺少貓函數[未來]實例
- 29. 缺少空間時,函數getline
- 30. jQuery的 - 缺少}在函數體
你得到的錯誤是什麼?我運行emacs 23.2,我有這個功能。 – 2010-09-26 22:56:54
M-x regexp-opt => [不匹配] – rehanift 2010-09-26 22:59:08