Emacs-对于init.el没有可选项卡的建议

Emacs-对于init.el没有可选项卡的建议,emacs,elisp,Emacs,Elisp,我对Emacs相当陌生 打开init.el后,我希望选项卡完成,就像在执行M-x并键入命令的一部分并按下tab以获得*完成*窗口时的小缓冲区一样 但是,在输入行的一部分后: (add-to- 按下选项卡,Emacs什么也不做;它不显示*完成*窗口 编辑.el文件时是否有启用选项卡完成的方法?您只需使用 (setq tab-always-indent 'complete) 它不会阻止TAB重新缩进,tho:相反,它细化了TAB的行为,这样,如果TAB的重新缩进没有效果(即,行已经正确缩进),它

我对Emacs相当陌生

打开
init.el
后,我希望选项卡完成,就像在执行
M-x
并键入命令的一部分并按下
tab
以获得
*完成*
窗口时的小缓冲区一样

但是,在输入行的一部分后:

(add-to-
按下
选项卡
,Emacs什么也不做;它不显示
*完成*
窗口


编辑
.el
文件时是否有启用
选项卡
完成的方法?

您只需使用

(setq tab-always-indent 'complete)

它不会阻止TAB重新缩进,tho:相反,它细化了TAB的行为,这样,如果TAB的重新缩进没有效果(即,行已经正确缩进),它就会尝试执行完成。它应该在大多数主要模式下工作(只要它们通过点函数提供所需的完成数据),而不仅仅是在Elisp中。

您的期望似乎是错误的——在Emacs Lisp模式下,tab键绑定到tab命令的缩进,并且您似乎要寻找的完成在M-tab上。你是在问如何重新绑定这些钥匙,还是只是感到惊讶?是的,我真的很惊讶。由于我使用的是Windows,
M-
实际上会切换应用程序,
Esc-
会让人讨厌,无法使用。我最终使用了
公司
。然而,对于这个问题的未来观众,您将如何将
绑定到以下函数:对tab命令执行
缩进,如果这没有任何作用,则在点执行
完成操作
?我可以报告,您很快就知道esc是元的,甚至您都不知道。到现在为止,我的肌肉记忆几乎可以追溯到30年前,但几十年来一直如此。在一个奇怪的特殊情况下,它实际上已经有用了几十年了,但如果我再次使用真正的VT102终端,就不必担心了。不知道你怎么知道缩进是否真的“做了什么”。比较前后的点可能是一个很好的近似值,但我想可能会出现遗漏“did”的情况。
(let((p)(点))(制表符命令的缩进)(when(eq p(点))(在点完成))