我已经开始使用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