Hello Vim users!
Announcing: Vim (Vi IMproved) version 8.2 This is a minor release, a lot of bugs have been fixed, documentation was updated, test coverage was improved, etc. There are a few interesting new features, see below. Read the announcement with links and a few images online: https://www.vim.org/vim-8.2-released.php Once you have installed Vim 8.2 you can find details about the changes since Vim 8.2 with: :help version8.2 Background ---------- Before I did the keynote at VimConf 2018 I asked plugin developers what they wanted from Vim. The result was a very long list of requested features. The top two items were clear: Popup windows and text properties. After more than a year of development the new features are now ready for the Vim crowds. Popup windows make it possible to show messages, function prototypes, code snippets and anything else on top of the text being edited. They open and close quickly and can be highlighted in many ways. More about that below. This was no small effort. Although the existing window support could be used, popup windows are different enough to require a lot of extra logic. Especially to update the screen efficiently. Also to make it easy for plugin writers to use them; you don't need to tell Vim exactly where to show one, just give a reference point and the text to display, Vim will figure out the size and where the popup fits best. Text properties can be used for something as simple as highlighting a text snippet or something as complicated as using an external parser to locate syntax items and highlight them asynchronously. This can be used instead of the pattern based syntax highlighting. A text property sticks with the text, also when inserting a word before it. And this is done efficiently by storing the properties with the text. The new change listener support can be used to keep the highlighting up-to-date and support other LSP features. An example of what can be done with this is the "govim" plugin. It connects to a server (written in Go) and uses "gopls", the Language Server Protocol (LSP) server for Go. You can find a list of features with links to demo videos on github: https://github.com/govim/govim/wiki/govim-plugin-API Demo game --------- To show what is possible with popup windows (and because I sometimes get bored fixing bugs), I created a silly game. This uses popup windows that move across the display, text properties to highlight the animals and even sound to make it more fun! Thanks for my colleagues Greg, Martijn and Shannon for making the silly sounds. You can find it on github: https://github.com/vim/killersheep Other noticeable new features ----------------------------- A ":const" command for declaring a variable that cannot change: const TIMER_DELAY = 400 A Dictionary with literal keys to avoid all those quotes: let options = #{width: 30, height: 24} A heredoc-style assignment to easily assign a list of lines to a variable without quoting or line continuation: let lines =<< trim END line one line two END Function chaining for method calls: mylist->filter(filterexpr)->map(mapexpr)->sort()->join() The xdiff library has been included for a much improved diff view. When 'incsearch' is set it also applies to ":substitute". "modifyOtherKeys" was added to allow mapping more key combinations. ConPTY support was added for Windows 10, can show full color in the console. The MS-Windows installer supports translations, silent install and looks much better. A big thanks to all the developers who helped implementing and testing this! Popup windows ------------- The main new feature of Vim 8.2 is support for popup windows. These can be used to display text on top of other windows and are very flexible: they can be positioned relative to text, at an absolute position or just in the middle of the screen. The size can be fixed or can adjust to fit the text. A "zindex" value specifies what popup window goes on top of others. The popup window can react to user input. This works with a filter callback. The filter can handle a few keys and pass on the rest, or it can consume all the keys, thus grabbing focus. This allows for very flexible use of the popups. Popup windows can be used for many purposes, here are a few examples: - When a background build finishes a message popup can show "Build finished successfully" on top of the screen, without interfering with what the user is working on. - When using Insert mode completion extra info for a completion item can be displayed in an info popup. - A list of choices can be displayed, where the user selects an entry with keys or with the mouse. - While typing a function call, a popup can show the documentation and the list of arguments, just next to where the user is typing. The new text properties feature can be used to highlight types. Plugins are the main audience for the popup window feature, there are many options to change the positioning, size and highlighting. Gratitude --------- If you like Vim, please consider helping poor children in the south of Uganda: http://iccf-holland.org Where to get it --------------- The best way to obtain the latest Vim is using Git. Summary: git clone https://github.com/vim/vim.git More information here: https://www.vim.org/git.php For MS-Windows most of you will want the self-installing executable: https://ftp.nluug.nl/pub/vim/pc/gvim82.exe Signed versions will appear soon at: https://github.com/vim/vim-win32-installer/releases Information about which files to download for what system: https://www.vim.org/download.php A list of mirror sites can be found here: https://www.vim.org/mirrors.php Files available for download: UNIX: sources + runtime files, bzip2 compressed: https://ftp.nluug.nl/pub/vim/unix/vim-8.2.tar.bz2 VARIOUS: help files converted to HTML: https://ftp.nluug.nl/pub/vim/doc/vim82html.zip MS-WINDOWS one-size-fits-all: Self-installing, includes all runtime files, loads libraries dynamically: https://ftp.nluug.nl/pub/vim/pc/gvim82.exe MS-WINDOWS separate files: Runtime files: https://ftp.nluug.nl/pub/vim/pc/vim82rt.zip GUI binary for Windows NT/2000/XP/7/8/10: https://ftp.nluug.nl/pub/vim/pc/gvim82.zip GUI binary with OLE support: https://ftp.nluug.nl/pub/vim/pc/gvim82ole.zip Console version for Windows NT/2000/XP/7/8/10: https://ftp.nluug.nl/pub/vim/pc/vim82w32.zip Sources for PC (with CR-LF): https://ftp.nluug.nl/pub/vim/pc/vim82src.zip For debugging: https://ftp.nluug.nl/pub/vim/pc/gvim82.pdb https://ftp.nluug.nl/pub/vim/pc/gvim82ole.pdb https://ftp.nluug.nl/pub/vim/pc/vim82w32.pdb AMIGA: Only runtime and sources are provided, no binary: https://ftp.nluug.nl/pub/vim/amiga/vim82rt.tgz https://ftp.nluug.nl/pub/vim/amiga/vim82src.tgz Omitted in this version are: - The 16-bit DOS, OS/2 and Amiga versions, these are obsolete. - The 32-bit console version for MS-DOS/Windows 95/98 Mailing lists ------------- For user questions you can turn to the Vim mailing list. There are a lot of tips, scripts and solutions. You can ask your Vim questions, but only if you subscribe. See https://www.vim.org/maillist.php#vim If you want to help Vim development, discuss new features or get the latest patches, subscribe to the vim-dev mailing list. See https://www.vim.org/maillist.php#vim-dev Subject specific lists: Macintosh issues: https://www.vim.org/maillist.php#vim-mac Before you ask a question you should search the archives, someone may already have given the answer. Reporting bugs -------------- Create an issue at github and/or a pull request: https://github.com/vim/vim Alternatively send your problem to <vim-...@vim.org>. Please describe the problem precisely. Try to write a test that reproduces the problem and will pass once it is fixed. All the time spent on answering mail is subtracted from the time that is spent on improving Vim! Always give a reproducible example and try to find out which settings or other things influence the appearance of the bug. Try starting without your own vimrc file: "vim -u NONE". Try different machines if possible. See ":help bugs" in Vim. Happy Vimming! -- INSPECTOR END OF FILM: Move along. There's nothing to see! Keep moving! [Suddenly he notices the cameras.] INSPECTOR END OF FILM: (to Camera) All right, put that away sonny. [He walks over to it and puts his hand over the lens.] "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org /// -- -- You received this message from the "vim_use" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_use" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/201912121508.xBCF80JL011280%40masaka.moolenaar.net.