0

我是 Spacemacs 和 Emacs 的新手。当我在 web 模式下编辑时,比如 html 文档,当我还没有输入任何相关内容时,我经常会触发自动完成提示。我记得在 html 块中没有这个问题,但是当在脚本(js)或 css 块中时,不得不不断地拍打菜单变得非常麻烦。

由分号触发的自动完成建议

您可以从上面的示例中看到,我正在编辑 css,并且在使用分号完成属性定义后会弹出自动完成功能,这意味着点击分号并回车开始下一行将改为在分号后面的行中添加无用的文本。我怎样才能改变这种行为?

脚本标签内的类似行为

你可以在这里再次看到我在脚本标签内编辑时几乎有同样的问题。使用花括号打开函数定义并按 Enter 键转到下一行,而是在花括号后插入无用的文本。

我正在编辑的文件是 .svelte,但我已经告诉 emacs 使用 web 模式

我的 dotspacemacs/user-config 具有以下内容:

(add-hook 'text-mode-hook 'turn-on-visual-line-mode)
(add-to-list 'auto-mode-alist '("\\.svelte?\\'" . web-mode))
(setq web-mode-markup-indent-offset 2)
(setq web-mode-css-indent-offset 2)
(setq web-mode-code-indent-offset 2)

(setq configuration-layer--elpa-archives
      '(("melpa-cn" . "http://elpa.emacs-china.org/melpa/")
        ("org-cn"   . "http://elpa.emacs-china.org/org/")
        ("gnu-cn"   . "http://elpa.emacs-china.org/gnu/")))
4

3 回答 3

1

我自己不是 spacemacs 用户,但您似乎已设置company-minimum-prefix-length为 0,而您可能希望它至少为 2。您也可以考虑增加company-idle-delay,这会导致候选人的呈现速度变慢。

于 2020-02-14T21:44:43.580 回答
0

尝试将此添加到dotspacemacs-configuration-layers您的 spacemacs 文件的部分spc + fed

     (auto-completion :variables
                      auto-completion-enable-snippets-in-popup t
                      auto-completion-return-key-behavior nil
                      auto-completion-tab-key-behavior 'complete)
于 2020-11-23T20:22:45.407 回答
0

我也是emacs的新手。我认为这是同一个问题

https://emacs.stackexchange.com/questions/53110/for-spacemacs-how-do-i-override-a-layers-setting-company-minimum-prefix-leng

基本上是因为这个功能.emacs.d/layers/+lang/html/func.el

 (defun spacemacs//company-web-minimum-prefix-length ()
    "Set company minimum prefix length to 0 for the current buffer only."
    (set (make-local-variable 'company-minimum-prefix-length) 0))

https://github.com/osv/company-web/issues/4相关

您可以将最小长度更改为 0 以外的某个值

于 2020-05-18T09:16:53.980 回答