Злой режим и регулярные выражения

10

В Vim, если я хочу найти все имена переменных LX, где X - число, я могу просто напечатать /L\d . Тем не менее, это не похоже на работу evil.

Есть ли другой синтаксис для регулярных выражений в режиме Evil, или мне придется использовать некоторые функции Emacs для поиска и замены с использованием регулярных выражений?

Я использую spacemacs, и я довольно невежественен в отношении большинства вещей в Emacs, счастливо пребывая в режиме Зла весь день :).

Michelrandahl
источник
Где вы пытаетесь искать? В документе или в глобальных переменных emac?
Жюль
Я ищу в текстовом документе
Michelrandahl
Вы используете isearchили что-то вроде helm-swoopили swiper? Последние два должны легко делать то, что вы хотите. Если вы хотите использовать обычную isearchфункцию , но хотите использовать другой вид регулярное_выражение двигателя на github.com/benma/visual-regexp-steroids.el
Жюль

Ответы:

7

evilиспользует возможности Emacs regexp под капотом. К сожалению, Emacs, похоже, не имеет отдельного синтаксического класса для цифр и не распознает \d регулярное выражение класс .

Итак, чтобы соответствовать вашей переменной с именем LXгде Xцифра, похоже, что вы застряли с неуклюжим /L[0-9]или даже более неуклюжим/L[[:digit:]] .

Обратите внимание, что, в принципе, похоже, что вы можете использовать коды символов, перечисленные ниже describe-categories:

`\cc`

matches any character whose category is *c*.  Here *c* is a
character that represents a category: thus, 'c' for Chinese
characters or 'g' for Greek characters in the standard
category table. You can see the list of all the currently
defined categories with `M-x describe-categories RET`. You can
also define your own categories in addition to the standard
ones using the `define-category` function (see Categories).

В соответствии с describe-categories, цифры категории 6. Следовательно, /L\c6должно работать (хотя это не для меня, хотя другие категории работают). Тем не менее, вы не станете экономить время на неловком наборе текста по сравнению с /L[0-9].

Дэн
источник
Большое спасибо! Думаю, сейчас я могу жить с неуклюжим синтаксисом. Просто рад снова найти замену более удобным способом, и я только что проверил, что она работает даже с шаблонами захвата, ура!
Мишрандаль