出于有点愚蠢的原因,我想写一个完整阅读功能来阅读Emacs的缩写。
(defun ivy-abbrev (abbrev-name)
(interactive
(list
(ivy-completing-read "Insert abbrev: " (...get abbrev names here...))))
(progn
(abbrev-insert (abbrev-symbol abbrev-name ..appropriate abbrev-table...))))
遗憾的是,文档中没有任何内容可以...获取缩写名称...看起来可行:
https://www.gnu.org/software/emacs/manual/html_node/elisp/Abbrevs.html#Abbrevs
查看abbrev--before-point
的来源,看起来每次调用时都会通过abbrev--active-tables
进行递归搜索。
这个缩写API中是否有辅助方法可以使这更容易?
答案 0 :(得分:1)
您可以使用以下内容,
(cl-loop for table in (abbrev--active-tables)
unless (abbrev-table-empty-p table)
append (append (delete 0 table) ()))
请注意,将nil附加到矢量是创建列表的技巧。