This update is still built against macOS 15 Sequoia, and does not contain any specific fixes or improvements for macOS 26 Tahoe. That will come in a future update.
Announcements
Moving macOS 10.13 - 10.15 support to legacy release
Currently, MacVim binary releases are available in two versions: a normal version (macOS 10.13 or above), and a legacy version (macOS 10.9 or above). Starting next release (r183), the normal version will require macOS 11.0 Big Sur (due to Xcode 26 requirements), and macOS 10.13-10.15 users will need to use the legacy version instead. This will mostly be a transparent change, and the updater will automatically update to the right version. The legacy version should be almost identical to said users as they are using older versions of macOS that can’t make use of newer OS features to begin with.
In the future we may remove support for macOS 10.9-10.12 but for now they are still supported.
Features
Better mouse support
Scroll wheels should feel much better to use in MacVim. A small scroll is now guaranteed to scroll at least one line, and shift-scrolling (horizontal scroll) works correctly now. You can now also turn off macOS’s scroll wheel acceleration to scroll a fixed amount of lines in the “Input” settings pane. #1566
Mouse buttons 4 and 5 can now be bound to <X1Mouse> and <X2Mouse> in Vim mappings (:h X1Mouse). #1534
New Vim Features
Diff mode improvements
Vim diff can now highlight per-character or per-word differences within a line. Per-character highlighting is now used by default. See :h 'diffopt' under “inline”. v9.1.1243
Diff anchors allow for more explicit controls over how and where the diff algorithm aligns text across files (:h diff-anchors). v9.1.1557
Lots of auto-completion improvements. Some highlights below:
Sparkle (updater for MacVim) is now updated to 2.8.0. #1605
Security Fixes
Fixed MacVim erroneously setting the get-task-allow entitlement, which could allow another user-installed application to inspect it (CVE-2025-8597) #1585
Fixes
Fixed issue where macOS services (available in the “Services” menu) could not insert text when not in visual mode. #1571#1569
Fixed issue where guifont did not accept PostScript names with underscores (e.g. “CascadiaMono-Regular_Light”). #1600
MacVim now uses the standard v:colornames variable for choosing highlight colors. #1568
Vim syntax now understands MacVim-specific function showdefinition(). #1601
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
MacVim r181
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 has k 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.
“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 the transparency 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
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
MacVim r180
Updated to Vim 9.1.0727
This update mostly syncs to new upstream Vim version, along with small fixes.
Features
New Vim features
Vim now supports the XDG Base Directory Specification. You can now put your vimrc and plugins in ~/.config/vim intsead of ~/.vim / ~/.vimrc. See :h xdg-base-dir. v9.1.0327
Auto completion
Matched text in a completion popup menu will now be highlighted v9.1.0476
Other platforms (these don’t affect MacVim and included for reference only):
GTK Vim GUI can now also use <D-...> to map super keys, similar to MacVim for its Cmd key mappings. This should allow sharing cross-platform configs easier. v9.1.0058
MacVim’s guifont option now supports a new -monospace- value, which instructs it to use the system monospace font, which is SF Mono in recent macOS versions. As mentioned below (New Vim features), you can now use tab-completion to see the available values in cmdline. See :h macvim-guifont for more details on how to use it (including using different font weights). #1463
Note: I’m contemplating changing the MacVim default value for guifont to be -monospace- in the future so MacVim will always use the native monospace font instead of being hard-coded to Menlo. This makes it more consistent with Apple Terminal and Xcode. Feel free to leave a comment on #1277 if you have opinions on this.
Vim can be opened in clean mode (does not use .vimrc or plugins) via the new menu item “New Clean Window”. The new menu isn’t localized in most languages. Please comment on the issue if you would like to help in localization.
MacVim can be launched without loading user defaults for a clean experience via a command-line flag. See :h macvim-settings.
General
Sparkle (updater for MacVim) is now updated to 2.5.2. The updater can now show multiple release notes when updating MacVim across multiple versions. #1446#1469
Binary release is now built with more optimized compiler settings. Vim will now run slightly faster than before. #1444
macOS 14 Sonoma:
Binary release is now built using the macOS 14 SDK (#1434, #1440, #1448). One small change is that very tall characters (e.g. “นี้”) on the first line will now draw into the title bar instead of being clipped.
Fixed printing with :hardcopy under macOS 14. NOTE: Starting from macOS 14, you have to install ps2pdf (available from Ghostscript) yourself before you can print. See #1464
Python 2 support: The default location for locating the Python 2 lib in the binary release is now under /Library/Frameworks rather than /usr/local. Note: Python 2 has long been obsolete. If you rely on Python 2 plugins, consider this a warning as it’s only supported as long as it’s feasible and could be removed in the future. #1434
Fixes
Fixed non-native full screen mode when using a MacBook with a notch and having the “Show menu bar in non-native mode” option set. Changing the screen resolution while using non-native full screen also works properly now. #1450
Fixed Help menu’s documentation search not working with tags with special characters like <Down>. #1455
Compatibility
Requires macOS 10.9 or above. (10.9 - 10.12 requires downloading a separate legacy build)
Script interfaces have compatibility with these versions: