Je suis nouveau sur Spacemacs et Emacs. Lorsque j'édite en mode Web, comme un document html, je déclenche souvent l'invite de saisie semi-automatique lorsque je n'ai encore rien tapé de pertinent. Je n'ai pas ce problème dans les blocs html, dont je me souviens, mais quand dans les blocs script (js) ou css, il devient assez fastidieux de devoir constamment supprimer le menu.
Vous pouvez voir dans l'exemple ci-dessus que je modifie le css et qu'après avoir terminé la définition de la propriété avec un point-virgule, l'auto-complétion apparaît, ce qui signifie que frapper un point-virgule et entrer pour commencer la ligne suivante ajoutera à la place du texte inutile à la ligne après le point-virgule. comment puis-je modifier ce comportement?
Vous pouvez voir ici encore que j'ai presque le même problème lors de l'édition à l'intérieur de la balise de script. Ouvrir une définition de fonction avec une accolade et appuyer sur Entrée pour aller à la ligne suivante insère à la place du texte inutile après l'accolade.
Le fichier que j'édite est .svelte, mais j'ai dit à emacs d'utiliser le mode Web
Mon dotspacemacs / user-config a ce qui suit:
(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/")))
3 Réponses :
Je ne suis pas un utilisateur de spacemacs moi-même, mais il semble que vous ayez défini la company-minimum-prefix-length
sur 0, alors que vous voulez probablement qu'elle soit au moins company-minimum-prefix-length
à 2. Vous pouvez également envisager d'augmenter le company-idle-delay
ce qui entraînerait la présentation de candidats Ralentissez.
peut-être que spacemacs charge et configure la société d'une manière quelque peu différente, dans les deux cas, je ne pourrais pas obtenir la configuration ci-dessus pour avoir un effet, peut-être pas au bon endroit. J'ai donc essayé de trouver des informations spécifiques à spacemacs et je suis arrivé ici [ develop.spacemacs.org/layers/+completion/auto-completion/… . Rien de tout cela n'a fait ce dont j'avais besoin non plus, sauf la désactivation de l'achèvement de la clé de retour.
vous pouvez simplement évaluer M-:
(setq company-minimum-prefix-length 2)
partir de votre tampon html pour tester. Je suppose que vous utilisez le company-mode
pour l'auto-complétion, c'est-à-dire. si vous évaluez la valeur de M-:
company-mode
est t
, auquel cas vous devez également publier la valeur des company-backends
actifs dans votre tampon html (Remarque: si spacemacs remplace M-:
:, cela équivaut à Mx eval-expression
)
Cela est utile. J'ai apparemment besoin de définir la variable dans un endroit différent. J'avais ajouté (setq company-minimum-prefix-length 1)
à .spacemacs dans la fonction user-config, mais cela n'a rien fait. Je ne sais pas trop où je suis censé le mettre. L'évaluation de l'expression directement à partir du tampon html comme vous le suggérez fonctionne bien. Maintenant que je comprends mieux le problème, je vois que cette question est essentiellement la même
Eh bien, normalement, on définirait ces variables d'entreprise globalement - mais si vous voulez une valeur spéciale uniquement pour le html-mode
(ou web-mode
), vous (setq-local company-minimum-prefix-length ...)
un (setq-local company-minimum-prefix-length ...)
dans votre html-mode-hook
. Spacemacs a probablement un mécanisme configurable par l'utilisateur pour définir les hooks de mode, sinon vous devriez simplement pouvoir configurer un hook comme d'habitude
Je suis également nouveau sur emacs. Je pense que c'est la même question que
Fondamentalement, c'est à cause de cette fonction dans .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))
en rapport avec https://github.com/osv/company-web/issues/4
Vous pouvez modifier la longueur minimale en une valeur autre que 0
Essayez d'ajouter ceci à la section dotspacemacs-configuration-layers
de votre fichier spc + fed
(auto-completion :variables auto-completion-enable-snippets-in-popup t auto-completion-return-key-behavior nil auto-completion-tab-key-behavior 'complete)