对于上下文,我是一个emacs新手。我没有使用它很长时间,但一直在使用它越来越多(我喜欢它很多)。此外,我对lisp很满意,但对elisp不太熟悉。如何将正则表达式绑定到emacs中的组合键?
我需要做的是将正则表达式绑定到键盘组合,因为我经常使用这个特定的正则表达式。
我一直在做什么:
M-C-s ^.*Table\(\(.*\n\)*?GO\)
请注意,我用新行上面,但是我发现,isearch-forward-regexp
,你真的需要的结果更换\n
在正则表达式Cq Qj。这插入了一个文字换行符(无需结束命令),使我可以将换行符放入表达式并跨行匹配。
我该如何将它绑定到一个组合键?
我隐约明白,我需要创建一个elisp函数执行isearch-forward-regexp
与表达式,但我对细节模糊。我搜索谷歌,发现大多数文件是有点混乱。
如何将正则表达式绑定到emacs中的组合键?
斯通过的最好的答案迄今 - 不正是我一直在寻找,但它为我需要什么
编辑 - 这种类型的工作,但储存后这个宏,当我以后回去使用它时,我不能在Cx e中使用它。 (即,如果我重新启动Emacs和然后键入的Mx宏名称,然后CXè,我像“没有最后骨节病宏”或类似的小缓冲区得到一个消息)
@迈克斯通 - 感谢您的信息。我试图创建宏象这样:
C-x(M-C-s ^.*Table\(\(.*C-q C-J\)*?GO\) C-x)
这造成我的宏,但是当我执行我的宏我没有得到相同的高亮当我使用isearch-forward-regexp
,我正常地获得。相反,它只是跳到下一个表达式匹配的结尾。所以这不适合我需要的东西。有任何想法吗?
编辑:它看起来像我可以使用宏来做我想做的,我只需要在isearch-forward-regexp
的框外进行思考。我会尝试你的建议。