Partager les achèvements entre les instances vim en cours d'exécution

10

J'utilise tmuxla plupart du temps au lieu d'utiliser des vimtabulations et des scissions. Vim a-t-il la possibilité de partager des achèvements (via Ctrlnet Ctrlp) entre des instances en cours d'exécution? Existe-t-il un moyen de le configurer là où chacun vimscommunique avec le serveur vim.?

Gregory Nisbet
la source
8
Non, cela ne peut pas être fait de manière pratique . Vim est parfaitement capable de gérer des dizaines et des dizaines de tampons, utilisez sa puissance.
romainl
1
@romainl, pourrions-nous avoir quelque chose d'écrit dans un "fichier d'achèvement" d'où vimlirait et actualiserait sa liste d'achèvement?
J. Chomel

Réponses:

2

Vim peut utiliser la même base de données d'achèvement si la base de données est externe à chaque instance de vim.

Par exemple, l'achèvement sera quelque peu «partagé» si vous utilisez l' ctagsachèvement youcompletemeou tout autre plugin qui utilise des processus ou des fichiers externes.

La complétion de mots n'est pas très utile pour vous car elle n'utilisera que des mots dans le même fichier: C-N/C-P

Mais omniet l' ctagsachèvement utilisera la ctagsbase de données (qui devrait être construite au exuberant ctagspréalable) et sera partagée entre toutes les instances.

Tapez C-X C-Opour omni-complétion, C-X C-]pour complétion ctags.

Yuriy Ershov
la source
0

Il :help i_ctrl-nmontre que Vim utilise l' completeoption pour compléter les mots. L'aide completecontinue pour montrer que la seule vraie option pour utiliser quelque chose qui n'est pas local à l'instance de Vim est d'utiliser un fichier de dictionnaire. La question se résume alors à générer un tel fichier de dictionnaire en utilisant toutes les instances de vim. Vous pouvez le faire en analysant tous les fichiers ouverts de temps en temps. Je n'ai cependant aucune idée de l'impact que cela aurait sur les performances.

Une autre option serait d'utiliser un mécanisme entièrement différent (ctags, etc.) mais cela pourrait casser les fonctionnalités ailleurs car elles n'étaient pas vraiment destinées à la simple autocomplétion.

De manière plus générale, vous pouvez également modifier un peu votre flux de travail afin de vous en tenir davantage à la façon dont Vim était censé être utilisé. Cela signifierait utiliser une ou quelques fenêtres pour regarder les choses simultanément et changer souvent de tampon. Un plugin qui fait très bien la partie commutation est ctrlP. Après l'avoir activé en appuyant sur un bouton, il vous permet de faire une recherche floue de fichiers à divers endroits, permettant ainsi une commutation rapide. Tant que vous vous souvenez du nom de fichier.

Octaviour
la source