Я думаю самый простой способ обработать, это должно просто скопировать рубин-mode.el в марионетку-mode.el и сорвать все места, которые Вы видите, что он обрабатывает ensure
особенно. В моем ruby-mode.el
, это, кажется, только происходит в двух местах:
Где слова блока определяются
(defconst ruby-block-mid-keywords
'("then" "else" "elsif" "when" "rescue" "ensure")
"Keywords where the indentation gets shallower in middle of block statements.")
Где зарезервированные слова определяются:
(defconst ruby-font-lock-keywords
...
"ensure"
Я поставил удаление ensure
от тех двух мест, сохраняя как puppet-mode.el
и затем изменение Ваш .emacs
к этому добился бы цели:
(autoload 'puppet-mode "puppet-mode" "Major mode for editing Puppet config" t)
(setq auto-mode-alist (cons '(".pp$" . puppet-mode) auto-mode-alist))
Проблема здесь - это .
используется для выражения любого отдельного символа. Так .
соответствовал бы 5
в 50
но, ни с чем для соответствия 0
, остальной части строки не удается соответствовать. В любом случае, так как Вы знаете, что то, что Вы ищете, является любым числом, необходимо быть более конкретными с regex. Соответствуйте любому числу:
[0-9]\+
Если Вы знаете, что это число может иметь дополнительную дробную часть (после десятичной точки), можно использовать следующее:
[0-9]\+\(\.[0-9]\+\)?
Обратная косая черта перед +
и parens должен быть опущен, если Вы используете grep
-P
Опция (PCRE).
Если Вы действительно планируете использовать -P
опция, необходимо знать, что это не находится в стандарте POSIX и не может быть доступно на всех платформах.
Вы могли также использовать -P
флаг, чтобы включить Perl совместимые регулярные выражения и использование \d
:
grep -P -B10 -A10 '14:14:\d+ {"channels":["/alerts/6979/new"],"data":"New alerts for unit 6979"}' mygateway.log
Вы могли также действительно упростить его путем создания его менее строгим (детали зависят от входных данных, конечно, но это должно работать):
grep -P -B10 -A10 '14:14:\d+.*channels.*alerts/6979/new.*data.*New' mygateway.log
Я предполагаю это, если строка соответствует обоим /alerts/6979/new/
и New
, остальное неизменно.
\d
класс неожиданно известен за поведение в средах неASCII. [0-9]
обычно, что предназначено. Я уверен, что Вы уже знаете это; это к вашему сведению для других читателей.
– Joseph R.
15.09.2013, 22:44
perl
, но вероятно не к PCREs (которые не являются регулярными выражениями жемчуга), как используется в GNU grep -P
. Даже echo '\u09EA' | LC_ALL=bn_BD.UTF-8 grep -P '(*UCP)\d'
кажется, не соответствует, хотя это может быть до GNU libc или к моему фактическому бенгальскому определению
– Stéphane Chazelas
16.09.2013, 00:50
(*UCP)
часть, хотя?
– Joseph R.
16.09.2013, 00:57
(*UCP)
в regexp, но даже затем я не вижу, что он соответствует цифрам неASCII в моей системе.
– Stéphane Chazelas
16.09.2013, 12:28