Emacs中的代码完成
我正在尝试使用Emacs,因为它似乎比记事本++好一点 我正在尝试使用代码完成功能(也称为intellisense),但不知道如何使用 首先,我键入Emacs中的代码完成,emacs,autocomplete,Emacs,Autocomplete,我正在尝试使用Emacs,因为它似乎比记事本++好一点 我正在尝试使用代码完成功能(也称为intellisense),但不知道如何使用 首先,我键入M-x,然后键入eval expression,然后在微型缓冲区中键入 (打印(字体系列列表)) 因此,我输入(print(font-f),然后按TAB,我得到一个包含以下内容的窗口: Click <mouse-2> on a completion to select it. In this buffer, type RET to sel
M-x
,然后键入eval expression
,然后在微型缓冲区中键入
(打印(字体系列列表))
因此,我输入(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
单击完成项以选择它。
在此缓冲区中,键入RET以选择接近点的完成。
可能的完成情况如下:
字体面属性
字体系列列表
我可以使用鼠标单击第二个选项(
font-family list
)。但是如何仅使用键盘选择该选项?快捷键是什么?在这些情况下,完成是通过制表符完成的。完成将添加任何唯一字符,直到发生冲突(在您的情况下,它添加了字母“a”)。此时,您需要键入下一个区分它的字符。如果键入mTAB,Emacs将选择font-family list
,您可以使用更好的补全系统,但不能在使用eval expression
或M-:
调用的小缓冲区中
我建议您使用M-x ielm
调用交互式elisp shell。现在您可以启用公司模式的完成,这将带来如下内容:
安装公司,位于:
并在需要时调用它:
M-x company-mode
你会注意到它可以在shell和其他语言中工作:)我问的问题与:
从和上面的答案中,我意识到我需要执行switch to completions
函数。因为M-v
对我不起作用,我在minibuffer中绑定Shift选项卡切换到completions窗口:
(define-key minibuffer-local-map (kbd "<S-tab>") 'switch-to-completions)
(定义密钥小型缓冲区本地映射(kbd“”)”切换到完成)
编辑:M-v(或Alt-v)在新安装中为我工作-但是由于使用cua模式
,它停止了工作
我正要安装,但当我阅读说明时,它说如果completion cycle threshold
变量设置为一个整数,比如3
,那么如果有3
或更少的完成选项,那么TAB
将循环使用它们。我们仍然可以使用M-v
尽管阅读了它的描述,minibuffer complete cycle
似乎更加精巧。在本例中,只需输入区分可能性的字符,即m
。您可以使用m-:
而不是m-x eval表达式
。您好,谢谢您的建议。但是minibuffer下拉列表应该是g组织模式的ood。仍在搜索解决方案。如果我发现了什么,将更改我的答案。
(define-key minibuffer-local-map (kbd "<S-tab>") 'switch-to-completions)