114 votes

Créer un nouveau fichier dans le répertoire du fichier ouvert dans vim ?

Je me retrouve dans la situation où je veux créer un nouveau fichier dans le même répertoire que celui où se trouve le fichier ouvert. Comment puis-je créer un nouveau fichier dans le répertoire du fichier ouvert dans vim ? Par ailleurs, existe-t-il un endroit où je peux apprendre ces choses par moi-même ? La recherche sur Google n'a rien donné.

216voto

Ingo Karkat Points 61399

À partir de Vim, les nouveaux fichiers sont créés comme les fichiers existants sont modifiés, via des commandes telles que :edit filename ou :split filename . Pour les faire persister sur le disque, vous devez (éventuellement taper le contenu et) les faire persister via :write .

Comme une invite de commande, Vim possède une notion de répertoire actuel ( :pwd l'énumère). Tous les chemins de fichiers sont relatifs à celui-ci. Vous n'avez pas besoin de dupliquer le chemin d'accès à votre fichier actuel, il existe de jolis raccourcis pour cela : % fait référence au fichier actuel, :h est un modificateur pour son répertoire, moins le nom du fichier (cp. :help filename-modifiers ). Donc,

:e %:h/filename
:w

va créer un nouveau fichier nommé filename dans le même répertoire que le fichier actuellement ouvert, et l'écrire.

Par ailleurs, certaines personnes aiment que Vim passe toujours dans le répertoire du fichier courant. Ceci peut être configuré en plaçant

:set autochdir

dans votre ~/.vimrc (qui est lu au démarrage de Vim). Ensuite, ce qui précède devient simplement

:e filename
:w

Enfin, Vim dispose d'une excellente fonction intégrée :help . Apprenez à y naviguer et à y faire des recherches !

18voto

harris Points 170

Vous devriez essayer le plugin "nerdtree". Dans la fenêtre de nerdtree, vous tapez la touche m, et les choix d'opération de fichier s'affichent pour vous

15voto

RocketDonkey Points 16205

Si vous voulez créer un nouveau fichier et l'afficher dans la fenêtre à côté de votre fichier actuel, vous pouvez essayer ceci :

:vsp newfile

El vsp signifie vertical split et il divise l'écran en deux, l'un montrant votre fichier actuel, l'autre votre nouveau fichier (cela fonctionne également avec seulement sp qui est une division horizontale).

Selon le commentaire de @MartinLyne ci-dessus, ceci créera le fichier dans le répertoire du fichier dans lequel vous avez ouvert vim . Pour remédier à cela, vous pouvez modifier le répertoire de travail actuel comme suit :

:cd %:p:h

Cette commande change le répertoire de travail actuel en répertoire du fichier actif, ce qui signifie que l'exécution de la commande vsp (ou l'une des commandes ci-dessus) créera le fichier dans ce répertoire.

4voto

matson kepson Points 426

Lorsque vous avez ouverture de vim dans un endroit inexistant comme

$ vim /etc/<some_folder/<next_folder>/file.cfg

puis à créer un nouveau répertoire tout en étant dans vim il suffit de fonctionner en mode normal

:! mkdir -p /etc/<some_folder/<next_folder>

Sauvegardez ensuite votre document comme d'habitude :w :x ZZ (ce que vous voulez)

c'est tout

2voto

mazunki Points 569

J'arrive un peu tard dans la soirée, mais une autre option consiste à ouvrir NERDtree avec :E ou :Explore (ou ses alternatives de fractionnement :Vexplore / :Sexplore == :Vex / :Sex ).

Dans NerdTree, vous pouvez créer un nouveau fichier avec % et tapez le nom. Il ouvrira automatiquement le fichier et le créera après que vous ayez saisi le nom. :w /save it.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X