[vim/vim] [New Feature] Multi line statusline (simple specification) (PR #19123)

13 views
Skip to first unread message

h_east

unread,
Jan 7, 2026, 8:51:44 AM (7 days ago) Jan 7
to vim/vim, Subscribed

I submitted PR #18871 two months ago.
However, because I set out an ideal final specification, I had to resolve several major issues and it nearly stalled.
So I closed that PR and switched to a more realistic approach, gradually merging the specifications one by one.

  • Make the 'statuslineopt' option global only.
  • Remove the "fixedheight:" option from 'statuslineopt' and make it fixed at all times.
  • Make the "maxheight:" option in 'statuslineopt' a best-effort value. (We will strive to keep the value as close to the specified value as possible for all windows on all tab pages.)

This way, I thought it would be feasible to implement without having to worry about things like uniform window heights.

@chrisbra and All,
Is there a chance this will be merged into mainstream?


You can view, comment on, or merge this pull request online at:

  https://github.com/vim/vim/pull/19123

Commit Summary

  • 5d0c810 Multi line statusline (simple specification)

File Changes

(20 files)

Patch Links:


Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19123@github.com>

h_east

unread,
Jan 7, 2026, 9:44:59 AM (7 days ago) Jan 7
to vim/vim, Push

@h-east pushed 1 commit.

  • 6725132 Multi line statusline (simple specification)


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19123/before/5d0c810068a7a484055fd227e10f80875dbb418c/after/6725132bdea129bf0cb3653c523379ce89a6c665@github.com>

Christian Brabandt

unread,
Jan 7, 2026, 2:16:18 PM (7 days ago) Jan 7
to vim/vim, Subscribed
chrisbra left a comment (vim/vim#19123)

Thanks, I think this is a nice addition.

Is there a chance this will be merged into mainstream?

Yes after the 9.2 release. We can then work out the remaining issues.


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19123/c3720381426@github.com>

h_east

unread,
Jan 8, 2026, 1:03:03 AM (6 days ago) Jan 8
to vim/vim, Subscribed
h-east left a comment (vim/vim#19123)

Under the specification of this PR, the code is almost complete and works as intended.
(I'll add a few tests to test_statuslineopt)


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19123/c3722141544@github.com>

thinca

unread,
12:57 AM (12 hours ago) 12:57 AM
to vim/vim, Subscribed
thinca left a comment (vim/vim#19123)

How about using "\n" as a line break?
'tabpanel' does this.


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19123/c3747908990@github.com>

h_east

unread,
3:33 AM (9 hours ago) 3:33 AM
to vim/vim, Subscribed
h-east left a comment (vim/vim#19123)

The tabpanel specification is odd.
I plan to change it to “%@”. Neither the statusline nor the tabpanel should be split using actual newline characters.


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19123/c3748407483@github.com>

h_east

unread,
8:20 AM (4 hours ago) 8:20 AM
to vim/vim, Push

@h-east pushed 1 commit.

  • 72b571f Multi line statusline (simple specification)

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19123/before/6725132bdea129bf0cb3653c523379ce89a6c665/after/72b571f60826bd1b9d5e1b8ae5a18fbee9d7fb50@github.com>

h_east

unread,
9:26 AM (3 hours ago) 9:26 AM
to vim/vim, Subscribed
h-east left a comment (vim/vim#19123)

@chrisbra and All,
I don't think it's a good Vim specification for tabpanels to break lines with \n. I think the tabpanel specification change should be made by the 9.2 release, and it will be difficult to do so after that.
So in this PR I've reduced the multi-line statusline to a simpler specification and introduced a line break mechanism with %@ to 'statusline'. Then, to match this, I'm planning to change the specification of 'tabpanel' (abolishing line breaks with \n and introducing line breaks with %@) and refactor tabpanel.c, which is difficult to maintain.

Is the above plan acceptable?


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19123/c3749804939@github.com>

zeertzjq

unread,
9:52 AM (3 hours ago) 9:52 AM
to vim/vim, Subscribed
zeertzjq left a comment (vim/vim#19123)

%@ may cause some confusion:
Copilot.png (view on web)
Note that GitHub Copilot's answer is incorrect here, as clickable statusline areas is a Neovim-only feature.


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19123/c3749927623@github.com>

Christian Brabandt

unread,
11:40 AM (1 hour ago) 11:40 AM
to vim/vim, Subscribed
chrisbra left a comment (vim/vim#19123)

I don't follow. I'd argue using \n would be a reasonable choice as linebreak character, since it is widely known even outside of the Vim community.


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19123/c3750460693@github.com>

Reply all
Reply to author
Forward
0 new messages