On 29 Mar 2026 14:29 +0200, from [email protected] (Sébastien 
Hinderer):
>>> save-hook '~f amazon.fr' '=amazon/'
>> 
>> Also notice in the example how "." is backslashed, because that matches any
>> character.
> 
> I indeed didn't pay attention so far. I think I was under the wrong
> impression that, because the pattern is between single quotes, . is
> taken litteraly.

If you want a literal match, use =f instead of ~f in the condition. As
already noted, Mutt configuration file quoting is not the same as
shell quoting.

The = signals literal matching whereas the ~ signals regular
expression matching. (You can combine the two in a single matching
pattern; it's valid to do e.g. "=f @amazon.fr !~f 's[eé]bastien'".) In
case of for example flags filters there's no difference (~N and =N
will do exactly the same thing), but for string matching, the
difference is significant. Especially if you're using IMAP remote
mailboxes, doing a coarse match using literal matching followed by a
more fine-grained match using regular expressions probably can improve
performance (since Mutt can offload some literal matching to the
server).

See http://mutt.org/doc/manual/#patterns-modifier starting at "You can
force Mutt to treat EXPR as a simple string" above example 4.1.

-- 
Michael Kjörling
🔗 https://michael.kjorling.se

Reply via email to