假设您访问 emacs 缓冲区 B 中的文件 F,令 r 和 R 为一些替换正则表达式。现在我想用 R 定义的相应替换字符串 R_i 替换所有与 r (在某些区域)匹配的字符串 r_i ,以满足以下条件:
- 如果我保存F,上面的替换一定不会改变F的内容
- 如果光标位于通过 R 替换的某些文本上,它应该显示与 r 匹配的原始 r_1。如果我这样做,将 r_1 编辑为 r_2 并将光标移开,则 r_2 应替换为相应的 R_2 ,前提是它与 r 匹配。
如果能够突出显示(例如不同的颜色,或下划线...)替换并根据 r 控制此突出显示,那就太好了。
我猜这样的功能已经存在,但我不知道它是如何调用的。我上面描述的内容在某种程度上类似于编辑 latex 文件的预览模式。
最佳答案
看起来您只是希望一些字符串以不同的方式显示,而不是任何实际的替换。我认为 font-lock-mode
可以满足您的要求。例如,您可以通过在缓冲区中求值来将缓冲区中出现的所有单词“pi”显示为希腊字母 π:
(font-lock-add-keywords
nil `(("\\<pi\\>" (0 `(face default display "π")))))
(push 'display font-lock-extra-managed-props)
C-h v font-lock-keywords 将提供更多详细信息。
关于emacs - 如果 emacs 中光标不在 r 上,则用 R 替换正则表达式 r,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3495044/