2 votes

Faire correspondre les commandes vim aux fonctionnalités de compilation

Vim possède la notion de caractéristiques c'est-à-dire des sous-ensembles de fonctionnalités qui peuvent ou non être prises en charge dans une installation réelle, sur la base d'indicateurs de compilation. La présence d'une fonctionnalité peut être vérifiée avec la fonction has() et toutes les caractéristiques possibles peuvent être énumérées avec la fonction feature-list commandement.

Je veux que mon vim script soit plus robuste en vérifiant les fonctionnalités avant de les utiliser. Mon problème est qu'il n'est pas documenté explicitement quelle commande s'appuie sur quelle fonctionnalité.

Exemple concret : certaines distributions Linux livrent vim.tiny par défaut qui est une version fortement limitée en fonctionnalités de vim . Si je lance vim.tiny , mon .vimrc crache de nombreux messages d'erreur. Par exemple, le let n'est pas disponible, mais il n'est pas évident de savoir quelle fonction fournit cette commande. Comment pourrais-je la déterminer de manière fiable ? Ou, si ce n'est pas possible, comment puis-je faire en sorte que le démarrage de vim se dégrade gracieusement pour les raisons suivantes vim.tiny ?

2voto

jopa Points 800

Cibler un plugin Vim pour vim-tiny est difficile, car elle consiste en une muy un ensemble de fonctionnalités limité. Il s'agit d'un remplacement léger de vi qui ne prend en charge que quelques mappings, rien de plus.

Ceci dit, il est effectivement possible de détecter et d'affirmer certaines capacités, en utilisant has() y exists() . Les erreurs sur :let pourrait être évité en enveloppant dans :if 1 mais comme je l'ai dit, il vaut mieux viser un Vim "normal" et ajouter des vérifications de la disponibilité de nouvelles fonctionnalités (comme par exemple dissimuler La nouvelle version de Vim, l'annulation persistante, introduite dans Vim 7.3) et des corrections de bogues essentielles (mais seulement si vous en avez besoin).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X