Je sais pas si le titre est méga clair, mais en gros je souhaiterais savoir s’il existe des options à passer / une macro à créer pour emacs pour qu’à son ouverture il sépare sa fenetre en plusieurs zones que j’aurais définies et charge dans chacune d’entre elles un fichier particulier (pour un de mes projets du moment je dois bosser sur 3 ou 4 fenetres à la fois et le changement de buffer c’est bien mais bon on finit toujours pas se planter dans les touches en voulant aller vite …).
J’ai parcouru un peu la doc d’emacs mais je n’ai rien vu qui puisse remplacer les Ctrl + 1/2/3/0 pour diviser la fenetre en différentes zones.
Des idées ?
Apres un peu de google supémentaire j’en suis arrivé à 2 / 3 bouts de code lisp qui sont très utiles (en tout cas me concernant) et qui permettent de diviser comme on veut la fenêtre principale d’emacs à son chargement :
(split-window-horizontally) : coupe la fenetre courante en 2 zones l'une au dessus de l'autre, si on met une valeur entière en paramètre on donne une hauteur, en nombre de lignes, à la fenetre du haut
(other-window x) décale le focus de x fenetres pendant la création (suit plus ou moins un sens horaire mais pas tout à fait ... bref faut tester), sert pas mal pour faire à peu près ce que l'on veut.
(split-window-vertically) : meme topo que pour la première sauf que la la division est verticale
Petit exemple : avec
(split-window-horizontally)
(other-window 1)
(split-window-vertically)
(split-window-vertically)
(other-window -1)
On fait un premier split vertical on se déplace dans la fenetre de droite puis on fait 2 splits verticaux dans cette fenetre et, enfin, on revient dans la “grande” fenetre de gauche.
Le truc bien c’est qu’on peut metre ces infos de “mise en page” dans un fichier à part et demande à emacs de le charger lorsqu’il se lance avec l’option “-l” :
Exemple dans mon ptit “.bashrc” :
alias compilo='cd M1/projets/compil/ && emacs -l ~/.emacscompilo'
Edit : un joli manuel pour la route.
Edit 2 :
plutot que de passer par C^ X+ { ou } ou ^ et je sais pas quoi pour changer les tailles des fenêtres :
(global-set-key [(f11)] 'enlarge-window-horizontally)
(global-set-key [(f12)] 'shrink-window-horizontally)
(global-set-key [(f9)] 'enlarge-window)
(global-set-key [(f10)] 'shrink-window)
J’avais mis “shrink” au pif mais ca a l’air de marcher, pour le moment j’ai mis des bindings pas top pour tester mais c’est carrément + rapide que de trouver un point ou “tirer” avec sa souris ou d’utiliser Ctrl X+ machin (on peut pas garder appuyé donc on est obligé de taper la macro autant de fois qu’on souhaite de décallage …)