不要使用 rails-lib 这个库, 不小心引用到, 坑死我了.
emacs-rails/rails-lib.el at master · tomtt/emacs-rails · GitHub 这家伙直接弄了个:
(defun strings-join (separator strings)
"Join all STRINGS using a SEPARATOR."
(mapconcat 'identity strings separator))
(defalias 'string-join 'strings-join)
这样导致这个库被引用的时候, string-join 这个 sub-x 内置函数的两个参数被调换了, emacs就开始抱怨我 string-join 的参数使用反了.
因为是偶尔无法重现的问题, 我还以为我真的用反参数了呢.
怒删这个插件.
1 个赞
08年,那个时候我还不知 Emacs 为何物。
sub-x 自己也有不少坑,代码兼容 25 & 26 的时候需要注意:
string-trim 增加2个参数
string-trim-{left, righ} 增加1个参数
assoc 参数增加1个参数
when-let 可绑定多个变量 => 只能绑定1个变量
......
这个包最后更新是2008 年,同年 9 月才发布 Emacs 22.3。
在 2013 年 12 月之前都没有 subr-x.el,只有 helpers.el: History for lisp/emacs-lisp/subr-x.el - emacs-mirror/emacs · GitHub
2013 年 11 月,string-join 方法加入 helpers.el:
除了一些 Emacs 内部文件,其余地方的函数、变量命名都得使用 PREFIX
。就连写自己的配置,我也用,如:chunyang-split-window-right
。
还有一个好处是忘了函数名,用prefix很容易找到…