我正在尝试使用Emacs,因为它看起来比Notepad ++好一点。
我正在尝试使用代码完成功能(a.k.a intellisense),但不知道该怎么做。
首先,我输入M-x
,然后输入eval-expression
,然后输入迷你缓冲区,我想输入
(print (font-family-list))
所以我输入(print (font-f
,然后按TAB
,我会看到一个包含内容的窗口:
Click <mouse-2> on a completion to select it.
In this buffer, type RET to select the completion near point.
Possible completions are:
font-face-attributes
font-family-list
我可以用我的鼠标点击第二个选项(font-family-list
)。但是如何仅使用键盘选择选项?什么是快捷键?
答案 0 :(得分:2)
在这些情况下,通过 TAB 完成。完成将添加任何唯一字符,直到发生碰撞(在您的情况下,它添加了字母“a”)。此时,您需要键入区分它的下一个字符。如果您键入 m TAB Emacs将选择font-family-list
。
答案 1 :(得分:2)
您可以拥有更好的完成系统,但不能使用eval-expression
或M-:
调用的迷你缓冲区。
我建议您使用M-x ielm
调用交互式次级elisp shell。现在,您可以启用company-mode
的完成,这会带来类似的内容:
安装公司,位于melpa:
package-install RET company RET
并在您需要时调用它:
M-x company-mode
您会注意到它适用于shell和其他语言:)
答案 2 :(得分:0)
我真的问同样的问题:
In Emacs, how do I select the completion list with the keyboard?
从Completion Commands doc和上面的回答中,我意识到我需要执行switch-to-completions
功能。因为M-v
对我不起作用,我最终绑定了Shift-Tab,以便在迷你缓冲区中切换到完成窗口:
(define-key minibuffer-local-map (kbd "<S-tab>") 'switch-to-completions)
编辑: M-v(或Alt-v)正在全新安装 - 但是自从使用cua-mode
后,它就停止了工作。
我即将安装minibuffer-complete-cycle但是当我阅读说明时,它说如果completion-cycle-threshold
变量设置为一个整数,比如3
,那么如果有3
或更少的完成选项,然后TAB
将循环显示它们。我们仍然可以使用M-v
。
虽然阅读了它的描述,minibuffer-complete-cycle
似乎更加精致。