0
votes

Comment obtenir la saisie semi-automatique du mode Web de spacemacs pour me détendre un peu?

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.

suggestions de saisie semi-automatique déclenchées par semiconlon

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?

Comportement similaire à l'intérieur d'une balise de script

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/")))


0 commentaires

3 Réponses :


1
votes

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.


4 commentaires

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



0
votes

Je suis également nouveau sur emacs. Je pense que c'est la même question que

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

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


0 commentaires

0
votes

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)


0 commentaires