Comment «source» quelque chose dans mon fichier .vimrc?

99

J'ai travaillé sur l'extension de mon vim-foo récemment et j'ai rencontré quelques plugins ( autotag.vim par exemple) qui nécessitent qu'ils soient "sourcés" dans mon fichier .vimrc. Qu'est-ce que cela signifie exactement et comment le faire?

Paul Wicks
la source

Réponses:

119

Sourcing d'un fichier, c'est «l'exécuter». Essentiellement, chaque ligne du fichier est considérée comme une commande. L'approvisionnement revient à taper chaque commande dans l'ordre. Vous sourcez avec la commande :source(généralement abrégée en :so).

Donc si vous vous approvisionnez myStuff.vim

:so myStuff.vim

et si myStuff.vimcontenait ces lignes

set xx iI just intersted this<C-]>
set yy bbbb4dw

C'est la même chose que si vous tapiez ces commandes dans Vim

:set xx iI just intersted this<C-]>
:set yy bbbb4dw

Le seul fichier généré par défaut est le .vimrc( _vimrcsur Windows), c'est donc un endroit où vous pouvez conserver toutes les commandes que vous utilisez pour configurer Vim à chaque fois.

Là où cela devient intéressant, c'est le fait qu'un fichier source n'est qu'une série de commandes et que le sourcing est une commande, vous pouvez obtenir des fichiers à partir de vos fichiers source. Ainsi, les plugins que vous utilisez à chaque fois pourraient être obtenus lorsque vous démarrez Vim en ajoutant une ligne à votre .vimrccomme ça

 so myPlugin.vim
Whaledawg
la source
2
Que fait so!-on? Je l'ai couru parce que je pensais qu'il me ressourçait de force .vimrcet il a commencé à parcourir le fichier que j'étais en train d'éditer (mon .vimrc) et indentait des conneries de manière étrange et toutes sortes de choses étranges se produisaient.
Alexej Magura
2
Il exécute les fichiers en mode "normal" (c'est-à-dire que se passerait-il si vous n'ajoutiez pas le ":" devant).
Andrew Miner
44

Les fichiers de votre répertoire .vim / plugin sont automatiquement fournis (chargés).

Michiel de Mare
la source
7
De plus, leur nom de fichier doit se terminer par .vim
flawyte
ouais mais une seule fois par startup, non? est-ce lorsque vous lancez le terminal / powershell, ou lorsque vous utilisez la commande vim pour éditer un fichier?
3pitt
@ 3pitt AFAIK, c'est à chaque fois que la commande vim est exécutée.
Thaddaeus Markle le
12

Il existe toujours la commande : source file . J'écris généralement .vimrcqui contient des commandes personnalisées et ce qui ne l'est pas pour l'application console, puis un .gvimrcqui contient des goodies supplémentaires appropriés pour une version fenêtrée. Je .gvimrccommence source $HOME/.vimrcpar tout récupérer de la version console avant d'ajouter de nouvelles choses.

D.Shawley
la source
Mes versions de vim, au moins, toutes les sources .vimrc tout le temps. Êtes-vous sûr de devoir vous procurer .vimrc?
Dav Clark le
@DavClark: il semble que vous ayez raison. Je fais ça depuis longtemps et je n'y ai jamais pensé à deux fois. Le fichier d'aide indique définitivement que ce n'est pas nécessaire ... hmmm.
D.Shawley
6

Il y a normalement deux fichiers vimrc, l'un est _vimrc et l'autre _gvimrc (dans le premier il y a les choses pour vim, et dans le second pour gvim - des choses graphiques) - bien que la plupart des gens que je connais mettent tout dans _vimrc.

Une bonne pratique est de conserver tous vos fichiers supplémentaires (plugins, couleurs, extraits de code ...) dans un répertoire vimfiles séparé (votre propre) (que vous pouvez emporter avec vous).

Si tu fais

:help vimfiles

vim vous dira que votre répertoire vimfiles doit être localisé. Cela dépend un peu de la plateforme (win, unix). Sous Windows, l'habituel est dans votre dossier utilisateur (documents et paramètres, puis utilisateur ...). Dans le répertoire vimfiles, il y a quelques sous-répertoires. Parmi eux se trouve le sous-répertoire "plugin". Les plugins placés dans ce répertoire seront chargés automatiquement (également les plugins placés dans les sous-répertoires de "plugin"). Si vous ne souhaitez pas le charger automatiquement, placez-le simplement dans vos "vimfiles", ou dans un autre répertoire, et

:so plugin_name.vim (with the appropriate path)
(you can use the $vim, $vimfiles, and $home as shortcuts when defining path to plugin)
Tour
la source