2011-06-16 5 views
4

Je suis après un moyen par lequel je peux ajouter des commandes supplémentaires à un fichier texte via vim. Par exemple, comme vous pouvez faire quelque chose comme ceci:Commandes Vim In-File

# vim:syntax=foo 

Je voudrais faire quelque chose comme:

# vim:option call matchadd('Special', '\(REQUIRED\|OPTIONAL\)') 

Toutes les idées? Je sais que je peux écrire un fichier de syntaxe, mais ce n'est pas ce que je cherche pour le moment.

Répondre

5

La syntaxe Vim modeline (voir :help modeline) n'est pas destinée à spécifier les commandes à exécuter lors de l'ouverture du fichier. C'est exactement ce que les autocommandes sont pour (voir :help autocommand). Ce que vous essayez de faire devrait être une autocommande similaire à ce qui suit.

autocmd FileType foo call matchadd('Special', '\(REQUIRED\|OPTIONAL\)') 

ou

autocmd BufReadPost *.foo call matchadd('Special', '\(REQUIRED\|OPTIONAL\)') 

(ici au lieu de *.foo vous pouvez utiliser tout motif correspondant chemin ou nom de fichier (ou les deux) du fichier cible.)

Si la configuration que vous êtes la mise en place est locale à certains fichiers ou un projet, et vous ne voulez pas polluer votre .vimrc avec ceux autocmd s, utilisez localvimrc plugin. Il vous permet d'avoir un fichier "local" .vimrc à côté de votre fichier cible ou votre dossier de projet. Le script stocké dans ce .lvimrc est exécuté lorsque vous ouvrez des fichiers dans le même répertoire que le "local" .vimrc ou dans ses sous-répertoires. Les commandes automatiques illustrées ci-dessus (ou toute autre configuration ) peuvent être stockées dans un fichier local .lvimrc du projet. Pour les détails sur la configuration localvimrc voir la page d'accueil du plugin.

+0

Donc ce n'est pas possible, mais ça va, je viens d'ajouter un fichier .vim/syntaxe; et vos commentaires sont néanmoins très utiles - merci :) – Cyrus

+1

+1 de ce conseil localvimrc! – progo

1

Ce n'est pas une réponse à votre question, mais j'ai aussi cherché la vérité, et cette question est ici le plus proche de lui:

Vim: How to execute selected text as vim commands

Il n'est pas automatique, mais potentiellement seulement une touche, c'est assez proche. :)

Questions connexes