.Vimrc peut-il être divisé en plusieurs fichiers?

11

Supposons que j'aie une centaine de réassignements personnalisés avec iabpour Java et une centaine de réassignements pour Haskell, alors je voudrais les diviser en différents fichiers pour le rendre plus gérable. Ce que je recherche, c'est de créer quelque chose comme ça:

~/.
 ├── .vimrc
 └── .vim
     └── custom
         ├── java.vim
         └── haskell.vim

Où .vimrc pourrait ressembler à quelque chose

import java
import haskell

Est-il possible de faire quelque chose comme ça, ou suis-je simplement en train de trop compliquer les choses? Je suppose que ce que j'essaie de réaliser est ce que l'on fait dans LaTeX avec la \inputcommande ...

lindhe
la source
2
Y a-t-il une raison pour laquelle vous ne les mettez pas ~/.vim/after/ftplugin/$language.vim?
wchargin
1
Pas vraiment, dois-je? Qu'est-ce qui est censé entrer after/ftplugin?
lindhe
2
Si vous écrivez un fichier appelé, par exemple, ~/.vim/after/ftplugin/java.vimil sera automatiquement exécuté chaque fois que vous ouvrirez un javafichier. Cela semble être ce que vous voulez.
wchargin

Réponses:

11

Oui, la commande vim que vous recherchez est :sourceou :runtimepour les extraire runtimepath.

Par exemple, vous pouvez le faire dans votre .vimrc:

runtime custom/java.vim
runtime custom/haskell.vim

présumer ~/.vimest dans votre runtimepath(ce qui est par défaut).

Vous pouvez également déposer vos scripts dans le ~/.vim/pluginrépertoire; voir plugin d'écriture dans la documentation. Vim exécute automatiquement tous les scripts du répertoire du plugin.

derobert
la source
Cool. Y a-t-il une convention de dénomination pour ce que j'ai appelé ici custom, qui n'est pas tout à fait des plugins mais plutôt des fichiers qui auraient aussi bien pu se trouver .vimrc?
lindhe
1
@ Lindh-E Pas que je sache. Vous voudrez probablement utiliser quelque chose qui, vous en êtes sûr, n'aura pas de sens dans une future version de vim. Puisqu'ils s'efforcent de rester compatibles avec les noms de fichiers 8.3, je suggère un nom de répertoire> 8 caractères.
derobert