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:
tabclose
: specifies tab closing behavior. v9.1.0572
winfixbuf
: fixes a window to a buffer and prevent navigating away from it. v9.1.0147
- New functions:
getregion()
/ getregionpos()
: Helps retrieve the text selected in a visual selection. v9.1.0120 v9.1.0142 v9.1.0394
diff()
: Diff provided strings. v9.1.0071
gettext()
/ bindtextdomain()
: Vim plugins can now add localized messages. v9.1.0509.
filecopy()
: Copy a file using Vim script. v9.1.0465
- New bundled optional plugins (use
packadd
to enable them):
- 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):
- 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
- Vim GUI now supports Wayland in Linux. v9.1.0064
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
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
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
)
- Most string option values can now be completed. v9.0.1958
- MacVim options (guifont, fuoptions) also support tab completion. #1436
- ++opt (e.g.
:e ++
) and :terminal ++
completion work as well. v9.0.2025
- 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 when gdefault
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 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:
- Lua 5.4
- Perl 5.30
- Python2 2.7
- Python3 3.9 or above
- Ruby 3.2
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 (CVE-2023-41036)
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 the mvim
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 if gdefault
option is set. vim/vim#13097.
Scripting
- Scripting languages versions: Python now supports 3.9 or above.
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
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 than xchacha20
. (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
and utf16idx
) (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
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
Latest release notes >