Saisie semi-automatique dans Vim


258

Après une longue "formation", je suis finalement passé à Vim; mais j'ai des problèmes avec la saisie semi-automatique. Comment puis-je avoir une suggestion de code pendant que je tape?

Je développe habituellement PHP, Ruby, HTML, C et CSS.

Réponses:


144

Vous pouvez utiliser un plugin comme AutoComplPop pour obtenir la complétion automatique du code lors de la frappe.

Edit 2015: J'utilise personnellement YouCompleteMe maintenant.


10
Ceci est hautement recommandé. Supprime l'effort de taper CX CO, CP ou CN.
Amjith

J'ai essayé mais cela ne semble pas fonctionner .. il y a probablement un conflit avec d'autres scripts ..
diegocstn

1
placez-vous les fichiers dans les répertoires spécifiés dans ~ / .vim?
michaelmichael

1
@dieguitoweb ACP ne fonctionne pas avec tous les types de fichiers par défaut. Vous devez le "pirater" pour le faire fonctionner avec JavaScript, ActionScript et PHP. Ici, j'explique comment je le fais. Et voici un autre indice pour PHP.
romainl

maintenant ça marche :) tous les fichiers étaient déjà dans les bons répertoires .. J'ai seulement remplacé le script par un nouveau téléchargement depuis le dépôt git et maintenant ça va. merci beaucoup
diegocstn

438

Utilisez Ctrl- Npour obtenir une liste de suggestions de mots en mode insertion. Tapez :help i_CTRL-Npour voir la documentation de Vim sur cette fonctionnalité.

Voici un exemple d'importation du dictionnaire Python dans Vim.


15
merci c'est super, mais comment puis-je avoir cette liste en automatique sans appuyer sur <ctrl + N>?
diegocstn

5
C'est ce que michaelmichael vous disait avec le plugin qu'il a mentionné. Vous pouvez également consulter SuperTab.
projecktzero

4
Pour la prise en charge CSS, ajoutez le tiret pour la saisie semi-automatique intégrée en ajoutant 'set iskeyword + = -' à votre .vimrc
mahalie

3
C'est la façon la plus complète et native de le faire :-)
Srikant

5
@ Hi-Angel, la partie «auto» est qu'elle détermine automatiquement les options pour l'achèvement d'un mot, et fait automatiquement concurrence le mot lors de la sélection d'une option.
CJBS


11

Vous pouvez commencer à partir du omnifuncparamètre intégré .

Mettez simplement:

filetype plugin on
au FileType php setl ofu=phpcomplete#CompletePHP
au FileType ruby,eruby setl ofu=rubycomplete#Complete
au FileType html,xhtml setl ofu=htmlcomplete#CompleteTags
au FileType c setl ofu=ccomplete#CompleteCpp
au FileType css setl ofu=csscomplete#CompleteCSS

en bas de votre .vimrc, puis tapez <Ctrl-X><Ctrl-O>en mode insertion.

Je compte toujours sur cette complétion CSS.


qu'est-ce que cela setlsignifie? Merci.
qed

Ok, j'ai compris, cela signifie setlocal. Mais pourquoi avons-nous besoin de setlocal ici?
qed

Jetez un œil à la façon dont cela vous ennuie lorsque vous ouvrez un autre fichier dans le même tampon.
ernix

2
@ernix À partir de votre lien: Un tampon dans Vim est ... une instance ouverte d'un fichier ... Je connais les tampons, les fenêtres et les onglets; mais je ne sais pas ouvrir un autre fichier dans le même tampon. Il me semble que lorsque vous ouvrez un fichier, il s'ouvre toujours dans un nouveau tampon et ajoute ce tampon à la liste des tampons. Je sais qu'il existe d'autres façons d'utiliser les tampons, comme la liste de correctifs rapides, mais je ne savais pas comment changer le fichier dans un tampon. :h buffersdit: Un tampon est un fichier chargé en mémoire pour l'édition. Cela dit, je n'utilise sérieusement Vim que depuis 3 mois. et je suis certainement ouvert à la correction.
JakeD

1
@JakeD Ah oui. Vous avez raison. J'ai pris "instance" dans le mauvais sens. J'ai mal compris que vous parliez de processus avec différents PID. Désolé, oublie juste ce que j'ai dit.
ernix


6

J'ai récemment découvert un projet appelé OniVim , qui est un frontal basé sur les électrons pour NeoVim qui est livré avec une très belle saisie semi-automatique pour plusieurs langues hors de la boîte, et comme il s'agit essentiellement d'un wrapper autour de NeoVim, vous avez toute la puissance de vim à votre disposition si l'interface graphique ne répond pas à vos besoins. C'est encore au début du développement, mais il s'améliore rapidement et il y a une communauté très active autour de lui. J'utilise vim depuis plus de 10 ans et j'ai commencé à faire un essai routier à Oni il y a quelques semaines, et même s'il a quelques bugs ici et là, il ne me gêne pas. Je le recommanderais fortement aux nouveaux utilisateurs de vim qui ont toujours leurs doigts de vim!

entrez la description de l'image ici

OniVim: https://www.onivim.io/


32
pour moi, tout le point de vim utilise le terminal ... si je voulais utiliser une application électronique, je vais simplement utiliser vscode avec une extension vim ..
Mohamed Benkedadra

2
@MohamedBenkedadra Mais cela vous donnerait-il vraiment toute la puissance de Vim? Il se trouve que je suis un grand fan de son système de recherche et remplacement de modèles, pour une chose, et je serais agréablement surpris si un plugin d'émulation vim le supportait.
SilverWolf

3

J'ai utilisé neocomplcache pendant environ six mois. Il s'agit d'un plugin qui collecte un cache de mots dans tous vos tampons et les fournit ensuite pour que vous puissiez les compléter automatiquement.

Il y a un tableau de captures d'écran sur la page du projet dans le lien précédent. Neocomplcache a également une tonne d'options de configuration, dont il existe également des exemples de base sur la page du projet.

Si vous avez besoin de plus de profondeur, vous pouvez consulter la section appropriée dans mon vimrc - recherchez simplement le mot neocomplcache.


1

Voici le lien ! pour PHP.

appuyez sur les touches Ctrl + x puis Ctrl + o lors de l'écriture de certaines fonctions PHP.

Merci à Oseems Solutions pour le tutoriel


1

Si vous ne souhaitez que l'auto-complétion à partir du cache de vos tampons actuels, supertab est plus facile à installer que neocomplete , peut fonctionner sur Mac vim préinstallé prêt à l' emploi sans avoir besoin de MacVim.

Vous pouvez vérifier d'autres alternatives sur vim awesome .


0

Pour PHP, Padawan avec Deoplete sont d'excellentes solutions pour avoir une autocomplétion PHP robuste dans Neovim. J'ai essayé beaucoup de choses et Padawan fonctionne comme un charme!

Pour Vim, vous pouvez utiliser Neocomplete au lieu de Deoplete.

J'ai écrit un article sur la façon de créer un IDE PHP Vim si quelqu'un est intéressé. Bien sûr, Padawan en fait partie.


0

Une autre option est coc.nvim .

C'est vraiment rapide et l'achèvement est super car il utilise intellisense la même autocomplétion que VScode. Il a également des capacités de peluchage. Cela montre donc que vous pourriez avoir un bug. Il prend en charge une multitude de langues.

Cela peut prendre un peu de temps à installer et à configurer, mais je pense que c'est le meilleur moteur d'auto-complétion pour vim.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.