【发布时间】:2013-07-28 03:48:20
【问题描述】:
我写了一个在"EMACS"中插入一些特殊字符的函数,它会要求输入名称并插入相应的特殊字符。
示例:当我输入“alpha”时,函数将插入α。
但是当我输入这些字符时,我发现我不能使用自动完成。我将 alpha 定义为 α,将 beta 定义为 β,但是当我输入 al[Tab] 时,它只会插入一个制表符。
如何为我的函数定义自动完成功能?
--编辑--------------------------------
对不起,我还是emacs新手,昨天才开始写elisp函数。
我只是用一种直接的方式来实现这个功能,使用interactive和代码s来读取字符串
这就是为什么我想知道如何完成自动完成。因为我没有找到任何关于这些事情的教程。也许是因为我缺乏 elisp 知识来寻找正确的答案。
无论如何,这是我的代码:
(defun sp-char (char)
"Insert some special chars."
(interactive "sInput char name: ")
(let ((funky-char))
(setq funky-char
(cond
((string= char "Alpha" ) "Α")
((string= char "alpha" ) "α")
((string= char "Beta" ) "Β")
((string= char "beta" ) "β")
((string= char "Gamma" ) "Γ")
((string= char "gamma" ) "γ")
((string= char "Delta" ) "Δ")
((string= char "delta" ) "δ")
))
(insert funky-char)))
我搜索了读取字符串,但仍然对如何完成完成感到困惑。
如果您给我看一小段代码作为示例,我将不胜感激。
【问题讨论】:
-
1.有
TeX输入法可以做到这一点。 2. 你是怎么写函数的?可以为read-string等函数生成完成列表。 -
向我们展示你的函数的读取字符串部分。