Я не думаю, что есть что-то, что делает это, но вы можете использовать модификатор волшебства, который может быть достаточно хорошим.Допустим, у вас есть следующее выражение:
let pattern = '\<'.word.'\>'
, если word
- строка, предоставленная пользователем, то (если я правильно понимаю) вы хотели бы игнорировать все специальные модификаторы в ней.Для этого используйте «очень кочевой режим».Помещая "\ V" перед шаблоном, вы заставляете шаблон вести себя почти как буквальная строка.Затем введите «\ m» для восстановления нормального поведения.В этом случае:
let pattern = '\<\V'.word.'\m\>'
Обратите внимание, однако, что это не точно , что вы просите.Если пользователь вводит foo(*bar)
, он будет работать просто отлично, но если он foo(\*bar)
, он не будет работать, потому что пара \*
интерпретируется как модификатор звезды.Если вы не знаете об этих режимах, попробуйте :help /\V
, чтобы лучше понять, как работает магия.