2017-04-08 2 views
0

J'aime bien que _ soit traité comme un mot-clé dans la plupart des cas, mais pour les abréviations, je voudrais _ déclencher une abréviation. Y at-il un moyen de le faire automatiquement ou est ma meilleure option pour appuyer sur <C-]> avant de taper le trait de soulignement? Cas d'utilisation: si j'ai un mot long que je tape souvent, je pourrais avoir des variables contenant ce mot long (par exemple les noms de tables de la forme myverylongname_foo_table), et je voudrais que l'abréviation s'activer au milieu de la frappe, juste après avoir appuyé sur le trait de soulignement.Vim Déclenchez les abréviations sur le trait de soulignement?

+0

Ceci peut être résolu avec une carte, mais il y a une partie que je ne comprenais pas avec votre _Utilisez CASE_: Avez-vous des abréviations pour tous vos noms longs? – sidyll

+0

Il y a quelques noms/mots longs que je dois taper fréquemment, et j'ai créé des abréviations pour ceux-là. – Kvass

+0

ah je vois. J'ai posté une carte réponse, je pense que cela pourrait fonctionner pour vous. – sidyll

Répondre

0

Vous pouvez utiliser une carte pour « écraser » le comportement underscore:

inoremap _ <C-]>_ 
+0

parfait, exactement ce que je cherchais. – Kvass

0

Trouvé une solution de travail. Je peux mettre en place une auto-commande pour enlever _ de la définition iskeyword quand j'entre en mode insertion et le restaure quand je pars.

autocmd InsertEnter * setl iskeyword-=_ 
autocmd InsertLeave * setl iskeyword+=_ 
+0

Cela a des effets secondaires que je ne veux pas encourir, comme visser l'auto-complétion. Acceptera une réponse qui n'a pas ces inconvénients. – Kvass