Comment ouvrir des fichiers dans des fenêtres fractionnées verticalement / horizontalement dans Vim à partir de la ligne de commande


400

Il doit y avoir un moyen, quelque chose comme ça:

vim -[option] <file-list>

d'ouvrir des fichiers à partir d'une invite de commande et non de Vim.

  • diviser les fenêtres verticalement ou horizontalement
  • dans des onglets séparés

Réponses:


389

Je suppose que vous voulez dire depuis la ligne de commande. De vim --help:

-o[N]                Open N windows (default: one for each file)
-O[N]                Like -o but split vertically

Tapez donc ceci pour ouvrir les fichiers séparés horizontalement, par exemple:

vim -o file1.txt file2.txt file3.txt

14
Vraiment? Je n'ai jamais eu à fournir de N.
Cascabel

3
En effet, il semble que quelque chose dans mon .vimrc cause le problème. Si je le déplace de côté, -o sans N fonctionne comme indiqué.
Laurence Gonsalves

22
-oest comme :split, -Oest comme:vsplit
Evgeni Sergeev

@Cascabel -whatever[N]signifie que Nc'est optionnel et qu'il peut être omis, je crois qu'il dérive de la syntaxe
user3338098 le

@ user3338098 Je pense qu'il y a peut-être eu un commentaire supprimé ici; Le commentaire "En effet ..." de Laurence implique qu'il posait problème lorsqu'il était omis.
Cascabel

441

Ctrl+ W, S(majuscule) pour fractionnement horizontal

Ctrl+ W, v(minuscule) pour fractionnement vertical

Ctrl+ W, Qpour en fermer un

Ctrl+ W, Ctrl+ Wpour basculer entre les fenêtres

Ctrl+ W, J(Xor K, H, L) pour passer à la fenêtre adjacente (intuitivement haut, bas, gauche, droite)


10
Pour changer d'écran, appuyez sur Ctrl-wpuis sur up arrowou sur down arrowpour changer d'écran.
Eric Leschinski

7
@EricLeschinski, je préfère ctrl+w ctrl+wparcourir les fenêtres car les touches fléchées ont l' air un peu anti-vi
Lucas

6
Ah, mais vous pouvez utiliser des mouvements vim réguliers, par exemple ctrl+w jpour sauter dans la mémoire tampon en dessous de celle en cours.
mardi

4
:qferme également la fenêtre
Alexandre Bourlier

1
Ctrl + w pour changer de fenêtre ne semble pas fonctionner sur le terminal mac. Ctrl + w, w cependant
slashdottir

325

En cours d'exécution vim:

  1. :sp filename pour une scission horizontale
  2. :vsp filenameou :vs filenamepour une scission verticale

61
Cela ne répond pas à la question posée ... mais bien sûr, il m'a aidé: D Merci!
Abel

1
Merci beaucoup pour cela. C'est exactement ce dont j'ai besoin!
mapcuk

7
merci, juste ce que je cherchais. Je ai aussi:set splitright
zack

4
ctrl-ww pour permuter entre les divisions
Date:

:vsplit filenameest le même que :vsp filenameet :vs filename, mais peut-être un peu plus facile à retenir pour certaines personnes
b_dev

21

L'argument CLI -p constitue un autre truc intéressant: il les ouvre dans des onglets distincts pour les versions récentes de vim et de gvim.

gvim -p file1.txt file2.txt

1

Une autre astuce utile que je viens de découvrir est que vous pouvez utiliser des caractères génériques dans la liste de fichiers pour ouvrir plusieurs fichiers. Supposons que vous souhaitiez ouvrir fichier1.txt, fichier2.txt et fichier3.txt dans des onglets séparés, mais ne vous sentez pas obligé de taper tout ce que vous pouvez simplement faire:

vim -p file*

J'ai souvent besoin d'ouvrir un grand nombre de fichiers avec un préfixe similaire, ce qui a été très utile


12
Cela n’a pas à voir avec Vim, mais avec le shell que vous utilisez. C'est le shell qui développe les globs.
Kazark
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.