auto-mode-alist中一个长正则表达式和多个短表达式哪个更好?

比如我需要匹配Gemfile, Rakefile, Kirkfile.

我是写成"\\(Rake\\|Gem\\|Kirk\\)file\\'"好,还是写三个表达式分别匹配好?

如果需要匹配10个以上的相似的模式呢?

谢谢

长表达式效率高,短表达式不容易写错。

想要两者兼顾:

(add-to-list 'auto-mode-alist
             (cons (rx (or "Gemfile"
                           "Rakefile"
                           "Kirkfile")
                       string-end)
                   'your-mode))
4 个赞

肯定是分开写,清楚点,这种一点点长的正则消耗不了什么计算性能的。

optimization要针对瓶颈去做,而不是在每个你知道如何能优化的地方都牺牲可读性去优化一点点(即使牺牲的可读性很少)

关键是如果要匹配10个以上的模式的话,这么分开写会导致我的配置文件被add-to-list屠版啊……

而我又是个极度不喜欢在配置文件里写二次包装函数的人……

这也是我纠结的地方,就是如此合并会不会造成bug……

写个rest args的add-to-list挺好的吧,或者简单加个dolist也行吧