{{tag>vim session fenetre workspace}}
====== Espace de travail ======
L'utilisateur peut adapter son espace de travail sous Vim en coupant la fenêtre initiale (splits), en utilisant les onglets et en modifiant les barres d’états.
====== Gestion des fenêtres et vues sous vim ======
La fenêtre est une vue d'un buffer (tampon). Cette fenêtre initiale va pouvoir être scindée pour offrir plusieurs vues d'un même ou de plusieurs tampons.
Lorsqu'on invoque vim avec plusieurs fichiers en argument :
* vim charge les fichiers en mémoire : il crée un buffer par fichier ;
* Une fenêtre est créée et affiche le contenu du premier buffer.
# Exécution de vim avec deux fichiers en argument
vim hello.go go.mod
Depuis le mode normal sous Vim, on peut lister les buffers avec la commande **ls**
:ls
1 %a "hello.go" ligne 15
2 "go.mod" ligne 0
Vim retourne les informations liées aux buffers:
* Le buffer n°1 est affiché (%) il est permet d'éditer le fichier hello.go, le curseur est sur la ligne 15;
* Le buffer n°2 est ouvert, lié au fichier go.mod, la position du curseur est sur la ligne 0.
Une note plus détaillée est dédiée aux [[software/applications/vim/buffers|buffers de Vim]].
===== Diviser la fenêtre courante =====
On peut créer une nouvelle vue (fenêtre) en en scindant la fenêtre courante horizontalement ou verticalement:
* **:split** ou **:sp** pour subdiviser horizontalement la fenêtre courante
* **:vsplit** ou **:vsp** pour subdiviser verticalement la fenêtre courante
Si l'on souhaite simplement afficher un fichier sans l’éditer la commande **sview** est disponible:
* **:sview file** pour afficher le fichier en scindant horizontalement la fenêtre
* **:vert swiew file** pour afficher le fichier file en scindant verticalement la fenêtre.
C'est exactement ce qui se produit lorsqu'on appelle l'aide. Une nouvelle fenêtre est créée. Pour quitter l'aide on entre bien la commande **:q** qui clôt la fenêtre d'aide.
Pour directement créer un split et y afficher le buffer X on peut utiliser les commandes :
* ''%%:sbX%%'' split horizontal et affichage du buffer X ;
* ''%%:vert sbX%%'' split vertical et affichag du buffer X.
===== Contrôle des fenêtres =====
Pour changer de fenêtre on peut utiliser C-w C-w ou bien C-w et une touche direction **h**,**j**,**k**,**l** ( ou encore C-w + une touche fléchée).
Pour changer la disposition de deux fenêtres C-w R (rotate).
===== Les onglets =====
Dans Vim, un onglet peut contenir une ou plusieurs fenêtres c'est pourquoi on le compare en général à la notion de "workspace". Pour lister les onglets utiliser la commande ''%%:tabs%%''.
* Le caractère '>' désigne la fenêtre active.
Les commandes permettant de naviguer entre les onglets: ''%%:tabnext%%'', ''%%:tabprevious%%'', ''%%:tabfirst%%'', ''%%:tablast%%''
===== Enregistrer disposition =====
Pour enregistrer la disposition des splits fenêtres/onglets:
:mksession
Lors de l’exécution de vim, pour utiliser la session précédemment enregistrée:
vim -S
===== Références =====
* usr_07.txt
* http://all4dev.libre-entreprise.org/index.php/Guide_de_contr%C3%B4le_total_de_vim
* http://earthwithsun.com/questions/634570/vim-how-to-install-airline
* http://appendrelibrement.wordpress.com/2011/03/04/vim-split/
* http://linuxfr.org/forums/astucesdivers/posts/%C3%A9diteurvim-utiliser-les-splits
* https://www.linux.com/learn/vim-tips-using-viewports
* https://blog.cybiere.fr/post/vim_avance_p2/