Releases: macvim-dev/macvim
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 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
MacVim r180.2 (prerelease)
Updated to Vim 9.1.1050
Note: This update contains a completely new GUI tabs implementation. If you have GUI tabs disabled with set go-=e
I recommend giving the new tabs a try!
This is a pre-release version of MacVim. To use the latest stable release, see https://github.com/macvim-dev/macvim/releases/latest
What's Changed
What's Changed
- Tabs by @sfsam in #1120
- Make GUI tabs track Vim tabs in updates and animate correctly by @ychin in #1535
- Tabs: Expose option to show scroll tab buttons, fix tab scroll behavior, fix memory leaks, cache images and other cleanups by @ychin in #1536
- MMTabline: Localize button strings by @ychin in #1537
- MMTabline: Add right-to-left (RTL) locale support by @ychin in #1538
- MMTabline: Add Vim colorscheme / window use tab fill color support by @ychin in #1539
Full Changelog: prerelease-180.1...prerelease-180.2
MacVim r180.1 (prerelease)
Updated to Vim 9.1.1000
This is a pre-release version of MacVim. To use the latest stable release, see https://github.com/macvim-dev/macvim/releases/latest
What's Changed
What's Changed
- Use getregion() for showing definition of selected texts by @ychin in #1508
- Expose setting to only open untitled window only on reactivation by @ychin in #1509
- Add setting for whether to show document icon at title bar by @ychin in #1510
- Dark mode improve docs for v:os_appearance and add tests by @ychin in #1511
- Add support for macos-15 for CI by @ychin in #1514
- Fix non-native fullscreen quit to black screen bug by @ychin in #1516
- Fix resizing MacVim window occasionally result in a stale wrong Vim size by @ychin in #1518
- Fix non-native full screen misc crash, background color, and transparency issues by @ychin in #1521
- Fix menu item "MacVim Website" to go to correct URL by @ychin in #1524
- Fix full screen window restore / multi-screen / misc issues by @ychin in #1525
- New defaults: Smoothly resize window, guioptions+=k by @ychin in #1528
New Contributors
Full Changelog: release-180...prerelease-180.1
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
- New options:
- New functions:
- New bundled optional plugins (use
packadd
to enable them):- comment: toggle code comments on/off. vim/vim#14634
- nohlsearch: simple package to automatically set
nohlsearch
. vim/vim#15042
- Highlighting for diff files are back to normal. v9.1.0016
- Vim9 script improvements.
- Miscellaneous smoothscroll, termdebug, security fixes.
- Other platforms (these don't affect MacVim and included for reference only):
Misc
- When resizing MacVim, the title bar's message looks a little nicer now. #1488 by @sfsam
- Copyright disclaimer in About MacVim no longer shows a year. #1497
General
- Sparkle (updater for MacVim) is now updated to 2.6.4. For legacy builds it's now updated to 1.27.3. #1494
Fixes
- Fixed dragging tabs to reorder them resulting in a crash. #1499
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.30
- Python2 2.7
- Python3 3.9 or above
- Ruby 3.3
MacVim r179.1 (prerelease)
Updated to Vim 9.1.0695
This is a pre-release version of MacVim. To use the latest stable release, see https://github.com/macvim-dev/macvim/releases/latest
MacVim r179
Updated to Vim 9.1.0
Happy New Year! See #1472 for a retrospective of 2023 and future roadmap.
Also, Vim 9.1 is now released! See announcement.
Features
System monospace font (SF Mono)
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.

New Vim features
- Command-line tab completion improvements and bug fixes (see
:h cmdline-completion
and:h complete-set-option
) - New options:
set jumpoptions=stack
. Ported from Neovim. v9.0.1921
- API changes
getmousepos()
returns a new "coladd" for tab characters. v9.0.2032
:Man
now works properly whengdefault
is set. vim/vim#13097- A new small Vim script library that may expand in the future. See
:h vim-script-library
. - Vim9 script improvements.
- Miscellaneous security fixes.
Misc
New settings:
- "Scroll in one direction only" (Input). Prevents accidental horizontal scrolling when scrolling vertically using a trackpad. #1442
Clean mode (#1453):
- 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 installps2pdf
(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
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.30
- Python2 2.7
- Python3 3.9 or above
- Ruby 3.2
MacVim r178.1 (prerelease)
Updated to Vim 9.0.2043
This is a pre-release version of MacVim. To use the latest stable release, see https://github.com/macvim-dev/macvim/releases/latest
What's Changed
What's Changed
- CI: Update to Xcode 15 / macOS 13 in GitHub runner by @ychin in #1434
- Add cmdline completion for MacVim options: 'fuoptions', 'guifont(wide)' by @ychin in #1436
- Fix tabs drawing over rest of MacVim in macOS 14 Sonoma by @ychin in #1440
- Add option to only scroll in one direction when using trackpad by @ychin in #1442
- Use -O3 and link-time-optimization for published builds by @ychin in #1444
- Sparkle 2.5.1 by @ychin in #1446
- Fix macOS 14 Sonoma non-native full screen background color by @ychin in #1448
- Allow showing pre-release in What's New page by @ychin in #1447
- Fix non-native full screen show menu with notch, and changing resolution by @ychin in #1450
Full Changelog: release-178...prerelease-178.1
MacVim r178
Updated to Vim 9.0.1897
Special Notes
As some of you may have read, Bram Moolenaar, the creator and maintainer of Vim, has passed away recently. He has worked tirelessly on Vim for more than 30 years and this release is dedicated to him. If you would like, you could pay your respects at this discussion thread.
The Vim project has transitioned to new maintainers, and MacVim will continue to be supported as long as Vim is around.
Features
More flexible Python integration
MacVim now allows you to use Python runtime (via pythonthreedll
, used for Python plugins) of any version at or above 3.9. Previously you had to use the exact same version that was used to build MacVim (Python 3.11). The Python detection logic is also updated to always just find the latest version of Homebrew Python instead of a fixed one, and it will also now locate the default macOS / Xcode Python provided by the Xcode Command Line Tools if that is the only Python available. This should hopefully make configuring Python for MacVim a lot more seamless. See :h python3-stable-abi
. Vim v9.0.1776 / #1428.
New Vim features
- New built-in support for EditorConfig via an optional package. Use
packadd editorconfig
to activate it. See vim/vim#12902. g<End>
now goes to the first non-blank char. v9.0.1753- API changes
- Miscellaneous security fixes.
Security Fixes
- Fixed insecure usages of interprocess communication in MacVim. 399b43e (CVE-2023-41036) (credit @CDuPlooy)
Fixes
- Fixed MacVim to correctly set up the runtime folder in the app bundle. As a corollary,
xxd
is now bundled with MacVim like most other Vim distributions, and MacVim.app now provides man page for the CLI vim commands if the user wants to associate man pages with themvim
comamnd (see:h macvim-PATH
). #1430 - Fixed Vim occasionally crashing and/or hung when autocmd calls
serverlist()
on exit. #1427
Known issues
:Man
command doesn't work properly ifgdefault
option is set. vim/vim#13097.
Scripting
- Scripting languages versions:
- Python now supports 3.9 or above.
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.30
- Python2 2.7
- Python3 3.9 or above
- Ruby 3.2
MacVim r177
Updated to Vim 9.0.1677
Announcements
Website
The official website for MacVim is now https://macvim.org. Previously it just forwarded to https://macvim-dev.github.io/macvim/ (#1385).
You can also now read the MacVim documentation at https://macvim.org/docs/gui_mac.txt.html. See #1382 for announcement.
Features
Updater / What's New page
There is now a "What's New" page that will automatically be shown whenever MacVim detected that it has been updated to a new version (can be disabled in Settings). The page will also include all the release notes if you have updated across multiple versions. This feature is useful for users who turned on "Automatically install updates" or installs MacVim through other methods like Homebrew but would still like to see the release notes when a new version comes out. You can also access it through the Help menu. #1414
MacVim should now report its version in a much more consistent manner in the "About MacVim" page and when the updater reports there is a new version. It should look something like "r176 (Vim 9.0.1276)" where "r176" is the MacVim release number and the 9.0.1276 is the bundled Vim version. #1293 #1393
Sparkle (updater for MacVim) is now updated to 2.4.2. #1416
New Vim features
- New bundled colorschemes: wildcharm/retrobox/sorbet/zaibatsu (vim/vim#12163)
- File encryption now has a new
cryptmethod
:xchacha20v2
, which is designed to be more forward compatible with future Vim versions thanxchacha20
. (v9.0.1481) switchbuf
works for more commands. (v9.0.1546)- Statusline now supports multiple alignment "%=" items. (v9.0.1300)
- New UTF-16 utility functions (
strutf16len
andutf16idx
) (v9.0.1485) - Misc 'smoothscroll' bugs fixes
General
- Removed non-Unicode localization files, which helps cut down on app size. #1397
- Miscellaneous documentation fixes. #1415 #1375 #1386 #1363 (by @dkav)
- The disk image for MacVim (MacVim.dmg) is now in APFS and uses better compression for better efficiency. #1409
Fixes
- Printing a file in macOS 13 Ventura (using
:hardcopy
or File→Print) should work again. #1390 - Fixed a broken symlink to XPCServices in the Sparkle framework. #1367
- Fixed MacVim to not throw (safe) Objective C exceptions when quitting. #1371
- Fixed welcome message not being aligned properly in Simplified Chinese and show the Vim 9 prompt. #1381
- Removed some unnecessary test files in the runtime folders which were included erroneously. #1418
Scripting
- Scripting languages versions:
- Python is now built against 3.11, up from 3.10.
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.30
- Python2 2.7
- Python3 3.11
- Ruby 3.2
MacVim r176.1 (prerelease)
Updated to Vim 9.0.1403
- Printing files in macOS 13 Ventura is now fixed.
This is a pre-release version of MacVim. To use the latest stable release, see https://github.com/macvim-dev/macvim/releases/latest
What's Changed
What's Changed
- Remove Sparkle 2's XPCServices symlink by @ychin in #1367
- Update gui_mac.txt headings by @dkav in #1363
- Don't throw Objective C exception when quitting MacVim by @ychin in #1371
- Fix Xcode 8 build breaks by @ychin in #1372
- Remove Sparkle.framework when configured with --disable-sparkle by @ychin in #1373
- Remove Homebrew no-auto-update env var from CI by @ychin in #1374
- Fix upstream merge CI failure with 'winaltkeys' by @ychin in #1376
- Clean up syntax / formatting / typos in MacVim docs by @ychin in #1375
- Add security policy file / documentation by @ychin in #1377
- Fix
set fullscreen
not working after upstream Vim merge by @ychin in #1379 - Fix MacVim localized intro text, and don't hide the
:h version9
prompt by @ychin in #1381 - Fix 'gdefault' etc help tags being broken by @ychin in #1383
- Improve login shell docs by @ychin in #1386
- Fix CI not handling Xcode version correctly with packages by @ychin in #1387
- Fix qlstephen project warnings by @ychin in #1388
- Fix MacVim CI breakage in Test_mouse_shape_after_cancelling_gr by @ychin in #1392
- Fix misc MacVim project warnings in Xcode by @ychin in #1391
- Fix :hardcopy not working in macOS 13 Ventura by @ychin in #1390
- About MacVim show "pre-release" when running a pre-release build by @ychin in #1393
New Contributors
Full Changelog: release-176...prerelease-176.1