2010-01-21 6 views
2

Je souhaite exécuter une commande automatiquement après avoir accédé à un nouveau répertoire depuis vim. Par exemple, j'ouvre gvim et lance:Commande vim après cd

:cd ~/src/player 

Je voudrais vim à ce stade de la source automatiquement un fichier qui se trouve dans ce répertoire.

Est-ce possible?

+0

Quel est l'objectif final? Voulez-vous des paramètres spécifiques pour les fichiers sous ce répertoire? Voulez-vous des paramètres spécifiques si le répertoire de travail de Vim est '~/src/player' même si vous n'éditez pas les fichiers sous ce répertoire? Il est plus facile de fournir une réponse appropriée si vous décrivez ce que vous voulez faire plutôt que ce que vous pensez qu'il devrait se passer. – jamessan

Répondre

4

Vous pouvez écrire un alias pour que dans votre .vimrc:

command -nargs=1 Mycd call MyCd(<args>) 
function MyCd(path) 
    cd a:path 
    e somefile.ext 
endfunction 

Ensuite il suffit de taper:

:Mycd /some/path/ 
+0

Les commandes utilisateur doivent commencer par une lettre majuscule. – jamessan

+0

Oups, merci! –

+0

J'espérais une sorte d'événement de commande automatique comme BufRead et mes amis, mais il semble qu'il n'y ait actuellement rien de tel. Alors ça va faire! Merci. – devguydavid

0

Pas exactement ce que vous demandez, mais

 
:au BufEnter , BufFilePost * lc <afile>:h 

fera en sorte que chaque fois que vous ouvrez un nouveau fichier (par exemple avec :e ~/src/player/README), vous allez automatiquement changer directement est égal à ~/src/player. Si vous ouvrez plusieurs buffers, vous serez changé dans le répertoire contenant le tampon local lorsque vous changerez entre eux, et si vous ouvrez plusieurs onglets, ils resteront dans leurs répertoires respectifs.

+0

J'ai déjà utilisé cette approche, et je l'ai aimé. Cependant, je suis retourné à rester dans un répertoire de haut niveau pour ce que je fais. Il y a beaucoup de choses auxquelles je me suis habitué et que j'ai configuré pour travailler à partir d'un répertoire de premier niveau (makeprg personnalisé, grep, etc.) maintenant et donc je ne veux pas vraiment changer beaucoup de répertoires. Merci quand même. – devguydavid

Questions connexes