This isn't exactly what you asked for, but how about a custom command, such as Set, that calls a function to do the option set in a try/catch? If it succeeds, great. If it fails, you can just ignore it or use an echomsg or something.
You won't know when a feature was introduced, but you also won't have to have existence checks around everything. Salman On Sun, Jun 18, 2023, 14:29 Tony Mechelynck <antoine.mechely...@gmail.com> wrote: > On Sun, Jun 18, 2023 at 7:15 PM Enan Ajmain <3nan.ajm...@gmail.com> wrote: > > > > In the beginning, I used a simple vimrc, basically ":se nu", etc. Those > > features were available in all available Vim installations. Later when > > I got into tweaking, I used nightly builds of Vim, so I always had the > > latest features. But nowadays I have to work in a few ssh machines, > > some of which have slightly older versions of Vim. Which means some of > > my settings emit errors. > > > > The proper way to handle this is with ":has()" and ":exists()". For > > checking the existence of things like functions, autocommand events, > > variables, etc., they work fine. Even for options, I can use exists(). > > But what about option values? Let's say I want to set 'wildoptions' to > > use 'popupmenu'. This was introduced in a late patch of 8.2. The only > > way I can include this setting with sanity check is by using ":if > > has('patch-8.2.4325')". The problem is: I had to find the patch number > > by using "git grep --log=pum". > > > > Is there an easier way to find the patch number where an option was > > introduced? Perhaps with ":helpgrep"? > > > > -- > > Enan > > See > :help version5.txt > :help version6.txt > :help version7.txt > :help version8.txt > :help version9.txt > > Each of these begins with a section explaining what was new in version > n.0, then lower down there are a series of sections about versions > n.1, n.2 etc., each containing a series of short paragraphs about each > new patch concerning that section. > > I suppose that anything added earlier than version 5.0 can now be > assumed to be "always present". For later features, the simplest is, > as you said, to take advantage, when possible, of the has() and > exists() functions. Only when neither of these gives the clear-cut > result you need, will you have to resort to checking by patch number, > after having searched (possibly with the Normal-mode / command) some > or all of the five helpfiles mentioned above. > > Best regards, > Tony. > > -- > -- > 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/CAJkCKXsMg_Kk77G785oVt4jXaTFkiUvFWUZ6-4-e5SML08QjGQ%40mail.gmail.com > . > -- -- 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/CANuxnEc55LripVVmdt3BkZRu6h1qu5KPo_4MrR%2BKnEeeCYOQog%40mail.gmail.com.