2013-08-25 1 views
2

Comment puis-je (ou j'essaie de) définir la taille de la fenêtre (et non la taille d'image) d'une fenêtre Emacs à une valeur spécifique? Je connais les fonctions d'Emacs pour l'ajustement au contenu mais aucune ne me permet de définir une hauteur exacte. Je suis conscient du fait que je ne peux le faire que s'il existe d'autres fenêtres le long des dimensions que j'ajuste. J'ai besoin de cela pour adapter automatiquement la hauteur dans mon tampon de compilation (jusqu'à un certain seuil, bien sûr, disons 2/3 du frame-height()) au nombre de lignes de messages sorties par le compilateur/interpréteur.Définition explicite de la taille d'une fenêtre Emacs

Jusqu'à présent, je

(balance-windows (get-buffer-window compilation-buffer)) 
    (fit-window-to-buffer (get-buffer-window compilation-buffer) 
         (/ (frame-height) 2)) 

mais pour une raison quelconque la première déclaration n'a aucun effet lorsque la fenêtre de compilation est faible. C'est le code qui fonctionne correctement lorsque la fenêtre de compilation est trop grande mais pas quand elle est trop petite.

Répondre

3
  1. Obtenez la hauteur actuelle de la fenêtre que vous souhaitez modifier.
  2. Calculez la modification nécessaire à partir de la hauteur actuelle: le delta. Passez le delta à enlarge-window.

Par ex,

(let* ((curr-ht (window-height window)) 
     (delta (- DESIRED-HEIGHT curr-ht))) 
    (save-excursion 
    (save-selected-window (select-window window) 
          (enlarge-window delta))))  
Questions connexes