Hi,

I typically use my Vip/Picolisp setup inside Tmux. I've noticed that when I
resize the window occupied by Vip, it does not automatically adapt to the
new dimensions, nor could I find a quick way to do it manually. So I took a
look at the source code and decided to write some helper functions. The
function GetScreenSize uses "stty size" (to avoid relying on Ncurses). The
function UpdateScreenSize sets the environment variables LINES and COLUMNS,
as well as the Vip variables *Lines and *Columns to the appropriate values.
The problem is I don't really know how to force Vip to redraw its windows.
I've tried "repaint" cause it looked like it should do the trick, but it
did not. Am I missing something?

Wojtek

# Return a list of screen dimensions in the form (Lines Columns)
(de GetScreenSize ()
   (mapcar format
      (mapcar pack
         (split
            (chop (in '(stty size) (line T)))
            " "))))

# Update environment variables and internal variables holding the screen
size
(de UpdateScreenSize (Lines Columns)
   (sys "LINES" Lines)
   (sys "COLUMNS" Columns)
   (setq vip~*Lines Lines
         vip~*Columns Columns))

Reply via email to