Saturday, November 23, 2024

Re: Re: Syntax: Using \v (very magic) in patterns in syntax files



Den lör 23 nov. 2024 16:56'c.willis111 ' via vim_use <vim_use@googlegroups.com> skrev:



 

------ Original Message ------
From: bpj@melroch.se
To: vim_use@googlegroups.com Cc: bpj@melroch.se
Sent: Saturday, November 23rd 2024, 15:34
Subject: Re: Syntax: Using \v (very magic) in patterns in syntax files
 



 

Den lör 23 nov. 2024 14:35'c.willis111 ' via vim_use <vim_use@googlegroups.com> skrev:
 



 

------ Original Message ------
From: bpj@melroch.se
To: bpj@melroch.se Cc: vim_use@googlegroups.com
Sent: Saturday, November 23rd 2024, 13:25
Subject: Syntax: Using \v (very magic) in patterns in syntax files
 

I have noticed that patterns in published syntax files never use the `\v` (very magic) modifier. Is there any deeper reason than people's preferences for this? Being used to Perl patterns I practically always use it and find it hard to keep track of when to use backslashes when not using it. The result is that more or less subtle errors creep in when I'm writing a syntax file, so I'd prefer to use it unless it's a Really Bad Idea.

 

Hi

I deeply sympathise with you. It seems complete madness that the slashing is different for various quantifiers. (* recognised as a meta character, but not +  or ?). My reading of the help suggests that very magic doesn't cure this.

 

 
It does in that all ASCII punctuation characters can be escaped to be "normal" and those that are metacharacters are meta when not escaped. Word characters, quite sensibly do still need a backslash to be meta. That's consistent enough for me.
 
You seem to be talking about the perl behaviour, which seems consistent to me. My whinge was about the vim behaviour. Heree's a help snippet:
That's magic. Very magic and very nomagic are distinct from magic and nomagic. They are each other's opposite and both are consistent but there are currently no options for them: you have to use the `\v` and `\V` modifiers in the pattern (or `\m` and `\M` but why? :-) You can even use them to change behavior in the middle of a pattern!

From the help:

*/\v* */\V*
Use of "\v" means that after it, all ASCII characters except '0'-'9', 'a'-'z',
'A'-'Z' and '_' have special meaning: "very magic"

Use of "\V" means that after it, only a backslash and the terminating
character (usually / or ?) have special meaning: "very nomagic"

Examples:
after:   \v    \m     \M      \V matches ~
'magic' 'nomagic'
  a    a     a      a literal 'a'
  \a    \a     \a      \a any alphabetic character
  .    .     \.      \. any character
  \.    \.     .      . literal dot
  $    $     $      \$ end-of-line
  *    *     \*      \* any number of the previous atom
  ~    ~     \~      \~ latest substitute string
  ()    \(\)     \(\)     \(\) group as an atom
  |    \|     \|      \| nothing: separates alternatives
  \\    \\     \\      \\ literal backslash
  \{    {     {      { literal curly brace


 

4. Overview of pattern items                            pattern-overview
                                               E865 E866 E867 E869

Overview of multi items.                                /multi E61 E62
More explanation and examples below, follow the links.          E64 E871

         multi
    'magic' 'nomagic'  matches of the preceding atom
/star   *       \*      0 or more       as many as possible
/\+     \+      \+      1 or more       as many as possible
/\=     \=      \=      0 or 1          as many as possible
/\?     \?      \?      0 or 1          as many as possible

 

regards - Chris

-- 
-- 
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 unsubscribe@googlegroups.com">vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/CADAJKhB8xGaYuvoY9-ZOu2%2BNifq4gbmP_x6TY%3Ddh-T2JkQN8%3Dw%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 unsubscribe@googlegroups.com" target="_blank">vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/304a56a7.2408d.193593adb00.Webtop.251%40btinternet.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 unsubscribe@googlegroups.com">vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/CADAJKhA4ztK4E-8fcDX40xn0s9hBg5v4VQ6URJmUm9E3967Jfw%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+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/3216be5b.24523.19359bc2e94.Webtop.251%40btinternet.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+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/CADAJKhB3spYrzyU76M%3DFoyKEzx6NbJULS9n%2B95bmaXc2nYsHjg%40mail.gmail.com.

No comments: