Emacs 中的代码完成
Code Completion in Emacs
我正在尝试使用 Emacs,因为它似乎比 Notepad++ 好一点。
我正在尝试使用代码完成功能(a.k.a 智能感知),但不知道该怎么做。
首先,我输入 M-x
,然后输入 eval-expression
,然后在迷你缓冲区中,我想输入
(print (font-family-list))
所以我输入 (print (font-f
,然后按 TAB
,我得到一个 window,内容为:
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
)。但是我如何 select 仅使用键盘的选项?快捷键是什么?
在这些情况下,通过 TAB 完成。完成将添加任何唯一字符,直到发生冲突(在您的情况下,它添加了字母 "a")。此时您需要键入下一个区分它的字符。如果你键入 mTAB Emacs 将 select font-family-list
.
你可以有一个更好的完成系统,但不是在你用 eval-expression
或 M-:
调用的迷你缓冲区中。
我建议你用 M-x ielm
调用交互式劣质 elisp shell。现在您可以启用 company-mode
的完成,它会带来如下内容:
安装公司,位于melpa:
package-install RET company RET
并在需要时调用它:
M-x company-mode
您会发现它适用于 shell 和其他语言:)
我真的问了同样的问题:
In Emacs, how do I select the completion list with the keyboard?
从 Completion Commands doc 和上面的答案中,我意识到我需要执行 switch-to-completions
功能。因为 M-v
对我不起作用,所以我最终在迷你缓冲区中绑定 Shift-Tab 以切换到补全 window:
(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
似乎更精致了。
我正在尝试使用 Emacs,因为它似乎比 Notepad++ 好一点。
我正在尝试使用代码完成功能(a.k.a 智能感知),但不知道该怎么做。
首先,我输入 M-x
,然后输入 eval-expression
,然后在迷你缓冲区中,我想输入
(print (font-family-list))
所以我输入 (print (font-f
,然后按 TAB
,我得到一个 window,内容为:
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
)。但是我如何 select 仅使用键盘的选项?快捷键是什么?
在这些情况下,通过 TAB 完成。完成将添加任何唯一字符,直到发生冲突(在您的情况下,它添加了字母 "a")。此时您需要键入下一个区分它的字符。如果你键入 mTAB Emacs 将 select font-family-list
.
你可以有一个更好的完成系统,但不是在你用 eval-expression
或 M-:
调用的迷你缓冲区中。
我建议你用 M-x ielm
调用交互式劣质 elisp shell。现在您可以启用 company-mode
的完成,它会带来如下内容:
安装公司,位于melpa:
package-install RET company RET
并在需要时调用它:
M-x company-mode
您会发现它适用于 shell 和其他语言:)
我真的问了同样的问题:
In Emacs, how do I select the completion list with the keyboard?
从 Completion Commands doc 和上面的答案中,我意识到我需要执行 switch-to-completions
功能。因为 M-v
对我不起作用,所以我最终在迷你缓冲区中绑定 Shift-Tab 以切换到补全 window:
(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
似乎更精致了。