我已經開始使用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. openMPI中缺少gethostname()函數
- 4. 函數缺少參數
- 5. PHP中缺少參數$ _POST函數
- 6. 在PHP函數中缺少參數?
- 7. 計數中缺少函數錯誤
- 8. PHP缺少mb_strpos函數?
- 9. DialogPreference缺少構造函數
- 10. 缺少函數頭C++
- 11. Statsmodels API:缺少SARIMAX函數
- 12. 缺少dll函數檢測
- 13. 缺少函數返回'UIImage'
- 14. 缺少python 3 API函數
- 15. 缺少文件()函數
- 16. 替代缺少setOnDateChangeListener() - 函數
- 17. 在Xcode中缺少導入函數SCM?
- 18. Haskell - 缺少函數中的模式
- 19. WinCE ASP服務器中缺少函數
- 20. 在函數中缺少返回 - 模型
- 21. 在函數調用中缺少哨兵?
- 22. 在Karma測試中缺少函數
- 23. 在Django中缺少'Median'聚合函數?
- 24. 轉換函數中缺少表達式
- 25. 缺少來自GNU Emacs的軟件包
- 26. Emacs的css模式語法表缺少?
- 27. GroupBy Datepart函數缺少數據
- 28. PHP缺少參數錯誤的函數
- 29. PHP函數缺少的參數錯誤
- 30. Azure函數 - VS2017工具 - 在函數.json中缺少綁定
你得到的錯誤是什麼?我運行emacs 23.2,我有這個功能。 – 2010-09-26 22:56:54
M-x regexp-opt => [不匹配] – rehanift 2010-09-26 22:59:08