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
Andrei Chikatilo
la source

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
Laurence Gonsalves
la source
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)

LB40
la source
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
Taylor Leese
la source
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
dls
la source
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

Brent
la source
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