Переопределение «предложения» в Emacs? (одинарный пробел между предложениями, но игнорирование сокращений)

Я хотел бы иметь возможность перемещаться по предложениям в Emacs (Ma, Me ). Вот в чем проблема: по умолчанию Emacs ожидает, что каждое предложение будет разделено двумя пробелами, а я привык просто ставить один пробел. Конечно, эту настройку можно отключить, чтобы разрешить предложения, разделенные только одним пробелом, например:

(setq sentence-end-double-space nil)   

Но тогда Emacs думает, что предложение закончилось после аббревиатур с точкой ("."), например, после чего-то вроде "... странная команда, eg foo ... ".

Итак, вместо использования приведенного выше кода, есть ли способ определить переменную конца предложения, чтобы она считала [.!?] как отметку конца предложения, если и только если следующее будет один или несколько пробелов, за которыми следует заглавная буква [AZ]?

И ... чтобы также разрешить [.!?] отмечать конец предложения, если за ними следует ноль или несколько пробелов, за которыми следует "\"? [Причина этого последнего условия заключается в написании кода LaTeX: где за предложением следует команда LaTeX, например \ footnote {}, например, "... и поэтому мы можем видеть, что точка зрения доказана. \ Footnote {В некоторых альтернативных мир, по крайней мере.} " ]

Я попытался поиграть с определением конца предложения и пришел к следующему:

(setq sentence-end "[.!?][]'\")}]*\\(\\$\\|[ ]+[A-Z]\\|[ ]+[A-Z]\\| \\)[
 ;]*")

Но это, похоже, совсем не работает.

Есть предложения?

15
задан imz -- Ivan Zakharyaschev 22 May 2011 в 09:05
поделиться