Мой вопрос мотивирован написанием TeX в emacs, но не связан с самой системой TeX.Как заменить строку non-backslashed в режиме abacrev emacs?
Моя цель - создать аббревиатуры в emacs, чтобы заменить некоторые (TeX) макросы их символами юникода, например \ alpha с α, автоматически, когда я набираю TeX в emacs.
Я планировал достичь этого, используя систему аббревиатуры. В то время как следующие аббревиатуры работает отлично (заменяет тест с \ теста):
("test" "\\test" nil 0)
Аббревиатуры, которые могли бы сделать то, что я хочу, а именно:
("\\alpha" "A" nil 0)
или
("\\\\beta" "B" nil 0)
не применяют когда я набираю \ alpha или \ beta.
(я мог бы обойти это, заменив «альфа» себя и удаление одного предшествующего символа, но я хотел бы сохранить возможность вводить альфа без обратной косой черты и не применяя это правило расшифровкой сокращений.)
Что такое правильная форма аббревиатуры, которая заменяет \ alpha на α?
По крайней мере, метод ввода TeX, описанный ниже, слишком хочет заменить, что позволяет вам легко набирать \ over, \ varepsilon или другие макросы TeX, которые на самом деле не являются частью метода ввода. Моя цель состояла в том, чтобы найти решение, в котором я могу набрать TeX, как всегда, с заменой, происходящей без активного ввода от меня. –
Вижу. Я использую rfc1345, это действительно полная и систематическая; Я рекомендую вам попробовать. В любом случае изменение регулярного выражения работает с одним оговором (см. Отредактированный ответ). – angus