Comment définir le répertoire de travail / actuel dans Vim?


109

Ainsi, lorsque je veux créer un nouveau fichier en utilisant la commande: e, je ne veux pas spécifier le chemin complet, juste le nouveau nom de fichier. Cela peut-il être fait?

Réponses:


144

Comme déjà suggéré, vous pouvez utiliser autochdir, qui passera au répertoire du fichier que vous avez ouvert, l'autre option est

:cd mydirectory

ce qui changera le répertoire. Cela peut être un chemin absolu ou relatif, donc :cd ..va monter d'un niveau. Ou vous pouvez utiliser :cd %:hqui changera également dans le répertoire dans lequel se trouve le fichier actuel, mais sans définir autochdir.

:cd

changera de répertoire vers votre répertoire personnel (ou sous Windows, imprimera le répertoire courant).

:cd -

changera le répertoire vers le répertoire précédent que vous avez visité.


13
si vous utilisez plusieurs fenêtres, vous pouvez même utiliser: lcd pour changer de répertoire pour la fenêtre actuelle uniquement.
Inutile

1
@Useless: intéressant ... Je ne pense pas que j'aurais jamais voulu ça, mais je suppose que c'est une question de goût. Merci pour l'info.
falstro

3
J'essaie de comprendre ce que signifie%: h, une aide?
Michael

10
@Michael se %traduit par le nom du fichier courant, y compris le chemin, :ajoute un modificateur, hest head, c'est-à-dire le chemin jusqu'au dernier séparateur de chemin, c'est-à-dire excluant le nom du fichier lui-même.
falstro

@falstro, savez-vous comment: la commande cd peut s'appliquer à toutes les fenêtres dans les mêmes instances vim en cours d'exécution? Ex: lors de l'utilisation de split: sp
mgouin

15

De plus, si vous parcourez le système de fichiers avec l'explorateur de fichiers netrw, vous pouvez définir le répertoire actuel en appuyant sur la touche c.


utilisez également set autochdirpour rendre l' 'c' keyeffet dans le shell, afin que vous puissiez utiliser !command args sous le répertoire modifié.
pimgeek

9

Essayez d'ajouter set autochdirà votre .vimrc. Si vous souhaitez le modifier une seule fois, utilisez :cd(ou :cd!pour le forcer).


1
l'aide dit que cela casse certains plugins (je ne sais pas lesquels), j'ai donc pris la précaution d'ajouter un mappage dans mon .vimrc: cnoremap cd. lcd %:p:het à la nnoremap ,cd :cd %:p:h<CR>:pwd<CR>place
ErichBSchulz

utilisez également 'c' keydans l'explorateur de fichiers netrw pour accompagner cela.
pimgeek

3

Je ne sais pas ce qui ne va pas avec vim. Je veux que le répertoire dans lequel je lance vim soit le répertoire courant.

J'ai suivi le conseil sur autochd ci-dessus et mis cela à noautcd dans mon .vimrc.

Je ne l'ai pas encore fait, mais je suis sur le point de démarrer vim comme ça à partir de maintenant:

vim —cmd 'cd `pwd`'

Cela le fera coller au répertoire actuel!


2

En netrw:plus d'appuyer sur la ctouche pour définir le répertoire courant, vous pouvez également mettre:

let g:netrw_keepdir= 0

dans votre .vimrc; cela signifie que netrwle répertoire de navigation restera le même que le répertoire actuel.


Cela semble avoir un comportement équivalent à: lcd pour chaque changement de dossier netrw. Avez-vous une idée de la façon dont ce paramètre pourrait être l'équivalent d'un: cd à la place (changer le répertoire pour toutes les fenêtres)? Merci!
mgouin

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.