The way that multi-vterm-project works is that it creates a hidden buffer, enables vterm-mode and then displays it. There appears to be a race condition wherein vterm will set a terminal width to something that is wider than the window it is about to be displayed in. It has no way to know where it is about to be displayed. When the buffer is eventually displayed in a window, it is resized and it looks wrong. To make matters worse, vterm won't detect the size again immediately, it requires some other window or frame event to get it to recalculate.
Bad

Good

This is likely why vterm itself forces you to provide the pop to/display buffer function in the internal function that causes the buffer to have vterm-mode enabled:
https://github.com/akermu/emacs-libvterm/blob/f14d113ee4618f052879509ec378feb9766b871b/vterm.el#L1327-L1342
The way that
multi-vterm-projectworks is that it creates a hidden buffer, enablesvterm-modeand then displays it. There appears to be a race condition wherein vterm will set a terminal width to something that is wider than the window it is about to be displayed in. It has no way to know where it is about to be displayed. When the buffer is eventually displayed in a window, it is resized and it looks wrong. To make matters worse, vterm won't detect the size again immediately, it requires some other window or frame event to get it to recalculate.Bad
Good
This is likely why
vtermitself forces you to provide the pop to/display buffer function in the internal function that causes the buffer to havevterm-modeenabled:https://github.com/akermu/emacs-libvterm/blob/f14d113ee4618f052879509ec378feb9766b871b/vterm.el#L1327-L1342