【发布时间】:2020-04-02 16:55:58
【问题描述】:
ess-mode(Emacs 讲统计)的一个有用功能是自动将下划线_ 替换为赋值运算符<-。最近,我一直在使用很多管道(写成%>%),不必为每个管道输入三个字符会很棒。
是否可以为管道定义自定义键绑定,类似于将_ 转换为->?
【问题讨论】:
ess-mode(Emacs 讲统计)的一个有用功能是自动将下划线_ 替换为赋值运算符<-。最近,我一直在使用很多管道(写成%>%),不必为每个管道输入三个字符会很棒。
是否可以为管道定义自定义键绑定,类似于将_ 转换为->?
【问题讨论】:
查看yasnippet。你可以用它来定义类似“如果这个字符序列后面跟着这个键(你可以定义任何你喜欢的),然后用这个其他字符序列替换它们并将光标留在这个地方”。 yasnippet 的功能远不止这些,但网上有很多文档,甚至已经制作了类似于我上面给出的示例的食谱,您可以尝试一下,例如 yasnippet-ess-mode。
或者,您也可以尝试abbrev-mode 看看是否适合您。
我,例如yasnippet 更好,因为您还可以指定扩展后光标的位置,但abbrev-mode 似乎更容易设置。与 Emacs 世界中的往常一样,尝试多种解决方案,不要满足于第一个解决方案。对其他人最有效的方法可能不适合您,反之亦然。
【讨论】:
最简单的解决方案是只绑定一个键来插入一个字符串:
(define-key ess-mode-map (kbd "|") "%>%")
您仍然可以使用C-q | 插入|。我不确定地图的名称;您几乎肯定希望将键绑定限制为ess-mode。
【讨论】: