snakemake是一个类似于Python的替代make工具,更适用于工作流程而非编译。它非常好用,但也很新,我在Emacs中找不到相应的模式。我只需要一个非常简单的东西:从fundamental-mode稍微修改一下,因此在查看Emacs手册时,我在init.el中开始了以下操作:
(define-derived-mode snake-mode fundamental-mode
...
)
和make一样,snakemake对缩进(实际的制表符"\t"字符)非常严格,不是像emacs默认情况下输入TAB时的行为。如果我使用"C-q TAB"键,则会将一个真正的制表符字符放入缓冲区:这个方法可以运行,在fundamental-mode下尝试过Snakefile,运行得很完美。所以为了避免在此模式下每次想要一个TAB时都需要键入"C-q TAB",我想在snake-mode中做的第一个添加就是重新绑定TAB键为"C-q TAB"(或类似的内容)。所以我研究了emacs手册并尝试:
(define-derived-mode snake-mode fundamental-mode
(global-set-key (kbd "\t") (kbd "C-q \t"))
...
)
但这些替代方案都不起作用...也许重新绑定标准键如TAB键并不是一种推荐的做法?
我希望snake-mode的另一个改进是根据python语法进行语法高亮(但不具有任何python行为,例如python缩进行为)。
总之,只需要对fundamental-mode进行这两个简单的修改,创建一个“snake-mode”,并且如果文件名为“Snakefile”,还可以调用snake-mode。但我已经花费了数小时阅读emacs手册和搜索一些内容,似乎还没有接近解决。这很简单,我相信这是可能的。有什么建议吗?
谢谢
默里