1166 votes

Comment travailler efficacement avec plusieurs fichiers dans Vim?

J'ai commencé à utiliser Vim pour développer des scripts Perl et je commence à trouver qu'il est très puissant.

Une chose que j'aime, c'est d'être en mesure d'ouvrir plusieurs fichiers à la fois avec, par exemple, vi main.pl maintenance.pl et puis hop entre eux:

:n
:prev

et de voir quels fichiers sont ouverts avec

:args

Et pour ajouter un fichier, je peux dire:

:n test.pl

qui je m'attends pourra alors être AJOUTÉE à ma liste de fichiers, mais au lieu de cela elle efface ma liste de fichier et quand je tape :args je n'ai qu' test.pl ouvrir.

Alors, comment puis-je AJOUTER et SUPPRIMER des fichiers à mon args liste?

1227voto

fijter Points 7671

Pourquoi ne pas utiliser les onglets (présenté dans Vim 7)? Vous pouvez basculer entre les onglets avec :tabn et :tabp, Avec :tabe <filepath> vous pouvez ajouter un nouvel onglet; et avec un régulier :q ou :wq vous fermez un onglet. Si vous mappez :tabn et :tabp de votre F7/F8 touches, vous pouvez facilement basculer entre les fichiers.

Si il n'y a pas que de nombreux fichiers ou vous n'avez pas Vim 7 vous pouvez également diviser votre écran en plusieurs fichiers: :sp <filepath>. Ensuite, vous pouvez basculer entre les splitscreens avec Ctrl+W puis une flèche dans la direction que vous souhaitez déplacer (ou à la place des touches fléchées, w pour le prochain et W pour les précédentes écran partagé)

576voto

Liste

Pour voir une liste de tampons, j'utilise:

:ls

Ouverture

Pour ouvrir un nouveau fichier, j'utilise

:e ../myFile.pl

avec un renforcement de la saisie semi-automatique (mettez - set wildmenu votre .vimrc).

Remarque: vous pouvez également utiliser :find qui permet de rechercher un ensemble de chemins d'accès pour vous, mais vous avez besoin de personnaliser les chemins de première.


De commutation

Pour basculer entre tous les fichiers ouverts, j'utilise

:b myfile

avec un renforcement de la saisie semi-automatique (encore set wildmenu).

Remarque: :b# choisit la dernière visite de fichier, de sorte que vous pouvez utiliser pour basculer rapidement entre les deux fichiers.


À l'aide de windows

Ctrl-W s et Ctrl-W v de diviser la fenêtre en cours à l'horizontale et à la verticale. Vous pouvez également utiliser :split et :vertical split (:sp et :vs)

Ctrl-W w pour basculer entre les fenêtres ouvertes, et Ctrl-W h (ou j ou k ou l) pour naviguer à travers les fenêtres ouvertes.

Ctrl-W c pour fermer la fenêtre en cours, et Ctrl-W o pour fermer toutes les fenêtres sauf celle en cours.

Démarrage de vim avec un -o ou -O drapeau ouvre chaque fichier dans son propre split.


Avec toutes ces choses, je n'avez pas besoin d'onglets dans Vim, et mes doigts à trouver mes tampons, pas mes yeux.

Remarque: si vous souhaitez que tous les fichiers d'aller à la même instance de Vim, démarrer Vim avec l' --remote-silent option.

243voto

shyam Points 4133
:ls

pour la liste des tampons

  • :bp tampon précédente
  • :bn suivant tampon
  • :bn (n d'un nombre) se déplacer vers la n-ième de la mémoire tampon
  • :b <filename-part> avec la touche tab de fournir l'auto-complétion (génial !!)

Dans certaines versions de vim, bn et bp sont réellement bnext et bprevious respectivement. Onglet de l'auto-complétion est utile dans ce cas.

Ou lorsque vous êtes en mode normal, utilisez ^ pour passer à la dernière fichier sur lequel vous travaillez.

De Plus, vous pouvez enregistrer des sessions de vim

:mksession! ~/today.ses

La commande ci-dessus pour enregistrer le fichier ouvert les tampons et les paramètres d' ~/today.ses. Vous pouvez charger la session en utilisant

vim -S ~/today.ses

Pas de soucis de se souvenir où vous l'avez laissé hier. ;)

121voto

MarkB Points 1741

Pour ajouter à la liste des arguments:: argadd

Pour supprimer de la liste des arguments:: argdelete

Dans votre exemple, vous pouvez utiliser: argedit test.pl pour ajouter test.pl à la liste des arguments et éditer le fichier en une seule étape.

: help args donne beaucoup plus de détails et d'utilisation avancée

49voto

Andy Whitfield Points 1182

J'utilise les commandes de tampon - :bn (tampon suivant), :bp (tampon précédent) :buffers (buffers ouverts de liste) :b<n> (tampon ouvert n) :bd (supprimer le tampon). :e <filename> ouvrira juste dans un nouveau tampon.

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