Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Software-update: Vim 8.2

Vim logo (75 pix) Versie 8.2 van Vi IMproved, oftewel Vim, is uitgekomen. Deze universele editor is ooit door Bram Moolenaar voor de Commodore Amiga ontwikkeld, maar is tegenwoordig ook voor Unix, Linux, macOS, OS/2, DOS en Windows beschikbaar. Vim wordt niet actief ontwikkeld en meestal zitten er een paar jaar tussen de verschillende versies. In deze uitgave zijn de volgende verbeteringen doorgevoerd:

Vim 8.2 is available!

Vim 8.2 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.

For MS-Windows, download the self installing executable. Signed MS-Windows files will soon be available on the vim-win32-installer site. For Unix you probably want to get the latest version using git, see the github page. Otherwise see the Download page for options.

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. A couple of screenshots are below.

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.

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.

Versienummer 8.2
Releasestatus Final
Besturingssystemen Windows 7, Linux, BSD, DOS, macOS, Solaris, UNIX, Windows Vista, Windows Server 2008, Windows Server 2012, Windows 8, Windows 10, Windows Server 2016
Website Vim
Download https://www.vim.org/download.php
Licentietype Voorwaarden (GNU/BSD/etc.)

Door Bart van Klaveren

Downloads en Best Buy Guide

13-12-2019 • 10:10

28 Linkedin Google+

Bron: Vim

Update-historie

Meer historie

Reacties (28)

Wijzig sortering
Nog altijd mijn editor op Linux als Ops Engineer voor simpele scripts, config files etc.. Geen nano of wat er inmiddels nog meer is.

Voor het wat zwaardere werk inmiddels wel over op Visual Studio Code :-).
Als je eenmaal aan nano gewend bent, wil je niet meer terug naar vim.
Als je eenmaal VIM gewend bent, wil je niet meer terug naar nano.

Nano kan zo ontzettend weinig. Het werkt opzich wel als je kleine bestanden aanpast. Even een waarde hier of daar. Als je bezig bent met het schrijven van boeken, technische documenten en het schrijven van programma's, kom je al snel in de problemen. Nano is niets meer dan een ultra simpele text bewerker, vergelijkbaar met kladblok op Windows. VIM is een volwaardig pakket dat ik gebruik om documenten met duizenden pagina's te bewerken, programma's in te schrijven etc. Het is mijn agenda, het is mijn notitie systeem, het is bijna mijn hele werkdag. VIM is het eerste wat ik start als ik op mijn werk aan kom.
Net daarom is nano zo goed, klein maar fijn, geen toeters en bellen, geen handleiding nodig als je hem weer eens een jaar niet gebruikt hebt, een aangename CLI editor om snel eens iets aan te passen. Als ik veel toeters en bellen wil gebruik ik wel een gui desktop programma. De diehards zullen met met vim, lynx, mutt enzovoorts wel het tegendeel proberen te bewijzen :) Ieder zijn meug uiteraard...
Daarom is VIM zo goed. Klein maar kan alles. Alle toeters en bellen, geen handleiding nodig want ik gebruik het elke dag. Het is een aangename CLI editor die ook geschikt is om snel eens iets aan te passen. Als ik minder toeten en bellers wil kan ik inderdaad een GUI desktop gebruiken. Ik kan ook handboeien achter mijn rug om vastmaken en met mijn neus typen, dat werkt net zo snel. Er is namelijk geen enkel GUI programma dat net zo veel kan als VIM. Er is ook geen enkel GUI programma dat net zo makkelijk is als VIM.

Nano is daarom ook niet te vergelijken met VIM. Met nano kun je alleen een tekst bestandje aanpassen. VIM is een alternatief voor Word, Indesign, Outlook agenda, etc. Met nano kun je vast wel iets, maar een boek schrijven in Nano is echt niet te doen, wat ontzettend makkelijk is met VIM.

Ik vermoed dat je geen Linux gebruiker bent of een standaard thuis gebruiker. Ik vind het namelijk heel apart hoe je naar VIM kijkt.
Vi improved? Meer is het niet. Bij Emacs en Latex zeggen ze hetzelfde, maar voor een printvoorbeeld heb je al iets anders nodig...
Voor gewoon text-editing gaat bij mij de voorkeur wel uit naar CLI-programma's (FreeBSD's ee en mcedit) omdat die voor geen enkele handeling tijd nodig hebben. Een of andere GUI-editor die een seconde doet over alleen opstarten of noodzakelijk een muis vereist kan het bij mij vergeten.

[Reactie gewijzigd door blorf op 13 december 2019 15:40]

Latex is een markup language, net als HTML. Waarom je dat vergelijkt met VIM weet ik niet. Ik gebruik Latex dagelijks in VIM. Het is inderdaad Improved. Dusdanig dat het perfectie bereikt heeft (mag het nadat het al 43 jaar in ontwikkeling is (vanaf het begin van VI)?). Je zegt dat je voorkeur uit gaat naar CLI programma's, wat denk je dat VIM is?

[Reactie gewijzigd door ArawnofAnnwn op 13 december 2019 15:42]

Een CLI programma, dus niet grafisch, dus onvolledig voor elke activiteit die een grafisch resultaat moet opleveren? En het ene programma binnen het andere gebruiken is hetzelfde als 2 programma's gebruiken. Latex is dan een opmaak-methode maar het vereist een programma, plugin, toolkit, pakket of hoe je het ook wil toepassen.

[Reactie gewijzigd door blorf op 13 december 2019 15:48]

Ja, het is een CLI programma, dus niet grafisch. Dus volgens je vorige bericht precies wat je zoekt. Volledig geschikt voor een prachtig grafisch resultaat. Daar schrijf ik hele boeken in en bij mijn huidige werkgever alleen al heb ik honderden documenten geschreven. Allemaal technsiche documentatie met tabellen, afbeeldingen etc. Dat ik als ik klaar ben vanuit VIM een compiler aanroep, doet daar niet aan af. Het eind resultaat is een net opgemaakt PDF document.
Ik zoek helemaal niets. Waar heb je het over?
"Voor gewoon text-editing gaat bij mij de voorkeur wel uit naar CLI-programma's (FreeBSD's ee en mcedit) omdat die voor geen enkele handeling tijd nodig hebben. Een of andere GUI-editor die een seconde doet over alleen opstarten of noodzakelijk een muis vereist kan het bij mij vergeten. "

Daar reageerde ik op
Je legt het dan niet goed uit. Eerst geef je aan dat je perse CLI wilt en absoluut geen grafische applicatie, daarna ineens niet meer? Ik begrijp je woorden oprecht niet omdat je jezelf tegens preekt. Hetzelfde met grafisch. Ik schrijf boeken en documenten. Ik doe ook de opmaak. Dat is grafisch. Boeken die naar een printer gestuurd worden en in de winkel belanden. Dat doe ik allemaal in de CLI. Wat begrijp je daar niet aan? Dat is allemaal grafisch werk wat ik in een CLI applicatie doe. Ik heb niets aan een wysiwyg dus dat gebruik ik ook niet. Ik zit documenten te typen. Daarom gebruik ik een markup language. Een wysiwyg is een omslachtige manier om een rommelig resultaat te krijgen, zeker als je in het begin al gebruik maakt van een markup language. Een wysiwyg editor is leuk voor kinderen om de basis te laten begrijpen voor je ze leert hoe het echt moet.
Hij begint toch duidelijk met "Voor gewoon text-editing". Een grafische opmaak verzorgen valt daar natuurljk niet onder. Zo ingewikkeld is die tekst nou ook weer niet.
Een document opmaken is niets meer dan gewoon text editing.
Ja, en een spreadsheet maken zeker ook. XML is tenslotte ook gewoon tekst. Je vindt het zeker ook omslachtig dat mensen dat in Excel of LibreOffice doen? Voor een SVG gebruik jij natuurlijk ook gewoon VIM. Stel je voor dat je een gedrocht zoals Inkscape nodig hebt, zeg. Bah. 3D-modelletje maken? Rot op met je Blender, dat doen we natuurlijk met VIM en Povray!

Niet alles wat in een tekstbestand past, is text editing.Natuurlijk, het kán wel, maar een wysiwyg-editor omslachtig noemen is de wereld op z'n kop. Je kan je natuurlijk heel krampachtig aan die stelling vastklampen, maar dat jij tegenwoordig tot een zeer kleine minderheid behoort die de opmaak nog direct in een plain textbestand verzorgt, zegt in dit geval genoeg. Als DTP-pakketten zo verschrikkelijk omslachtig waren, waren we niet met miljoenen tegelijk overgestapt, terwijl we daar nog voor moeten betalen ook.

[Reactie gewijzigd door RSpanjaard op 15 december 2019 17:14]

Een spreadsheat is inderdaad wat lastiger, hoewel ik de meeste spreadsheets ook in VIM maak. SVG's maken doe je ook niet met word, net zoals 3 modellen. Daar heb ik het ook niet over. Een bestand opmaken, of het nu een technisch document is, een boek, etc, daar heb je geen WYSIWYG editor voor nodig. Ik heb jaren met indesign gewerkt, maar VIM met Latex is gewoon beter en makkelijker. Wat je met indesign en word kan, kan je ook in VIM met latex en vaak nog veel beter, netter en sneller. Er zijn zat bedrijven die boeken printen waar je direct je latex documenten aan kan leveren (dat weet ik uit ervaring). Hoe denk je dat de meeste professoren die technische studies geven, hun boeken aanleveren? Juist, in Latex. Dat is een vereiste op veel universiteiten en iets waar je bijna niet omheen kan. Word en Libreoffice writer zijn leuk om een briefje mee te schrijven. Als je meer gaat doen, ga je tegen allerlei problemen aanlopen. Het is traag, het is omslachtig en nutteloos.

[Reactie gewijzigd door ArawnofAnnwn op 15 december 2019 21:21]

Daar ben ik het zeer zeker niet mee eens, eerder andersom. Hoewel ik pas een jaar of 3 gebruik maak van VIM in plaats van Nano wil ik voor geen goud meer terug. Ik merk zelfs dat ik eerder de voorkeur heb voor VIM dan Atom voor het bewerken van bestanden. Het zou me niks verbazen dat dit afhankelijk is van de regelmaat waarop de edit gebruikt wordt: in mijn geval dagelijks een aantal uur waar dit in de tijd dat ik Nano nog gebruikte vooral sporadisch was.
vi en de shortcuts zitten zo in m'n systeem.. Heb gewoon geen andere editor nodig..
En je weet altijd precies of je in de command mode, de edit mode of de ex mode zit? Ik heb daar heel wat (soms catastrofale) vergissingen mee gemaakt.
Probeer lightline eens:


set laststatus=2 "for lightline

call plug#begin('~/.vim/plugged')
Plug 'itchyny/lightline.vim'
call plug#end()
"" == Lightline bar ===========================================================
let g:lightline = {
\ 'active': {
\ 'left': [['mode', 'paste' ], ['readonly', 'filename', 'modified']],
\ 'right': [['lineinfo'], ['percent'], ['fileformat', 'fileencoding']]
\ }
\ }
let g:lightline = {
\ 'colorscheme': 'seoul256',
\ }
set noshowmode " for lightline (has to be near the end due to scripts enabling it)
set showcmd "show command in bottom bar


daarna :PlugInstall en klaar

[Reactie gewijzigd door ArawnofAnnwn op 13 december 2019 14:27]

Zit af en toe in de verkeerde mode idd (dikke vingers) maar zit doordat het in m'n systeem zit ook zo weer in de juist mode.
Is dat de schuld van de editor ja?
Ja, een editor is ook maar een stuk gereedschap. Waarom er out-of-the-box (dus standaardconfiguratie) geen visuele feedback kan zijn in wat voor soort modus het bevind (achtergrondkleur bijvoorbeeld?), is mij een raadsel.

Wat heb je aan een boormachine als je niet eraan kan zien of die op "klopboorstand", "boorstand" of "schroefstand" zit? Waardoor je dus schroefjes die je in de muur wilt zetten kapotboort omdat de boormachine op "boorstand" staat, of de boormachine zelf sloopt omdat je een muurtje wilt slopen met je boormachine, terwijl die per ongeluk op "schroefstand" staat?
Omdat het een optie is. Om de boormachine er bij te pakken: Zie het als een boormachine waarbij je een klepje kan zetten over het systeem dat de stand zichtbaar maakt. Haal het klepje weg en je kunt het zien. Aangezien niet iedereen het wilt zien, staat het klepje niet standaard open maar kun je het zelf aanzetten. De standaard is om alles zo uitgekleed mogelijk te houden, dan kunnen mensen zelf bepalen wat ze wel en niet willen.
Ja, want je hoort gewoon altijd terug naar normal mode te gaan. Je zit dus altijd in normal mode, tenzij je expliciet naar een andere mode gaat. Daarnaast heeft vim een zéér krachtig undo-systeem dat er eigenlijk voor zorgt dat je geen catastrofale vergissingen kunt maken. Je undo history is namelijk een tree ipv lineair, dus je kunt elke state van je document opnieuw herstellen. Als je daarnaast ook nog je undo history persistent maakt, ga je al actief je best moeten doen om iets kwijt te geraken.
edit

[Reactie gewijzigd door ArawnofAnnwn op 13 december 2019 14:36]

Altijd het eerste programma wat ik installeer na de installatie van een Linux-smaak :)

Op dit item kan niet meer gereageerd worden.


Apple iPhone 11 Microsoft Xbox Series X LG OLED C9 Google Pixel 4 CES 2020 Samsung Galaxy S20 Sony PlayStation 5 Nintendo Switch Lite

'14 '15 '16 '17 2018

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2020 Hosting door True