Updated to Vim 9.1.1128
This update contains a completely new GUI tabs implementation by @sfsam! It also contains lots of small fixes for window resizing and full screen mode that aims to make using MacVim feel rock solid and stable.
Defaults Change
New settings defaults related to window sizing #1528:
- "Smoothly resizes window" is now on by default. MacVim's window will now resize smoothly instead of snapped to the size of the character grid.
- Vim's
guioptions
now hask
set by default (:h go-k
). This prevents MacVim's window size from changing unnecessarily when showing/hiding tabs or changing font size.
These should align MacVim better with how other apps work and integrate better with OS window management, including macOS 15 Sequoia's window tiling feature.
Features
Tabs
MacVim has a new tabs implementation! The old version (PSMTabBarControl) is not maintained and lacks features such as overflowing tabs and customizable colors. The new tabs will overflow horizontally and are scrollable. They also animate when tabs are closed or moved, respect system settings such as right-to-left locales and high-contrast modes, and are designed to fit within the currently selected Vim colors.
There are a few ways to customize the colors of the new tabs, under the "Appearance" settings pane. MacVim defaults to an "Automatic colors" mode which tries to pick sensible colors automatically based on the current foreground/background colors. However, you can also configure it to simply use the tab colors specified by the Vim color scheme (some color schemes will work better than others depending on their choice of colors). Another new option is "Use tabs background color" which when combined with "Transparent title bar" allows the title bar and tabs to look like a single cohesive whole.




Relevant work:
New Vim features
- new bundled color scheme:
- unokai (vim/vim#16443)
- new bundled optional plugins (use
packadd
to enable them):- helptoc: Use
:HelpToc
to show an interactive table of contents for Vim help, man pages, Markdown files, and terminal. vim/vim#10446
- helptoc: Use
- new options:
- new functions:
- Vim tutor has a new interactive plugin (
:h :Tutor
) (v9.1.0836). There is also now a chapter 2 (vim/vim#5729).
Misc New Settings
- "Open untitled window" (General) has a new option to only open on MacVim re-activation. #1509
- "Show document icon at title bar" (Appearance). Previously MacVim implicitly hid the document icon when using transparent title bar. This is now customizable. #1510
General
-
The MacVim dmg installer has a new design. Courtesy of @jasonlong. #1540 #1545
-
Legacy builds (macOS 10.9 - 10.12) are no longer built by GitHub hosted runners, due to GitHub's deprecation of old runners. They are now built by a custom self-hosted VM instead. In the future we hope to set up reproducible builds (#1506) so it will not matter who's building the app as it would be verifiable. #1559
-
"Nightly" build: We now build a dmg installer for every commit. This allows for trying out the latest developmental version of MacVim, but note that the app will not be signed / notarized, and it will not be as polished as official release/pre-release builds. See wiki for instructions. #1532
Fixes
Apple "Intelligence" Writing Tools
macOS 15 Sequoia's Apple "Intelligence" Writing Tools should work correctly with MacVim now. To use it, select some text, right click to show menu, and then select the "Writing Tools" sub-menu. As part of this fix, the integration with the "Services" menu now works more reliably as well. You can select texts in blockwise visual mode and select a service and MacVim will try to place the new texts back to the blockwise selection if possible. #1552
Window resizing and full screen
- Flicker begone: Changing font size, showing/hiding tabs or scroll bars, or entering non-native full screen should no longer cause MacVim to flicker. Previously there could be a momentary but distracting/annoying stale image that flashes briefly. #1547 #1549
- Fixed issue where resizing MacVim window would occasionally cause Vim to be stuck in a stale wrong size. #1518
- Non-native full screen now supports
blurradius
option. #1546 - Fixed window size not always restoring correctly when exiting full screen. Non-native full screen also works more reliably in multi-monitor setup. #1525
- Fixed non-native full screen mode when using an external monitor with a MacBook with a notch, and having the "Show menu bar in non-native mode" option set. Previously MacVim would sometimes miscalculate the menu bar height in the second screen. #1548
- Fixed misc issues with non-native full screen's interaction with
fuoptions
and also thetransparency
setting, and rare crash. #1521
Other Fixes
- Fixed issue where changing font size (using Cmd =/-) with guifont set to "-monospace-" would result in guifont being changed to a confusing name like ".AppleSystemUIFontMonospaced-Regular". #1544
- "MacVim Website" menu item now goes to the updated URL. #1524
- What's New page now allows changing font size (using Cmd =/-), and showing table of contents. #1561 #1562
- Dark mode documentation is now a bit clearer on
v:os_appearance
. #1511 - Using dictionary look up on selected texts (by right clicking and then selecting "Look Up" in the pop-up menu) is now more resilient as it uses Vim's native
getregion()
to determine the selected texts. #1508
Scripting
- Scripting languages versions:
- Ruby is now built against 3.4, up from 3.3.
- Perl is now built against 5.34, up from 5.30.
Compatibility
Compatibility
Requires macOS 10.9 or above. (10.9 - 10.12 requires downloading a separate legacy build)
Script interfaces have compatibility with these versions:
- Lua 5.4
- Perl 5.34
- Python2 2.7
- Python3 3.9 or above
- Ruby 3.4