如何指示Emacs auto capitalize mode自动将后面的任何单词小写,例如或即。?

如何指示Emacs auto capitalize mode自动将后面的任何单词小写,例如或即。?,emacs,org-mode,capitalization,capitalize,Emacs,Org Mode,Capitalization,Capitalize,Emacs自动大写模式将单词即和如误解为表示句子的结尾,并相应地错误地将其后的任何单词大写 是否有人可以通过输入,比如说,如或即来调用函数,该函数将插入字符,如和,即,然后自动将下一步键入的单词小写 奖励:做同样的事情。。。对于椭圆 将此添加到.emacs: (setq auto-capitalize-predicate (lambda () (not (looking-back "\\([Ee]\\.g\\|[Ii]\\.e\\)\\.[^.]*" (- (p

Emacs自动大写模式将单词
误解为表示句子的结尾,并相应地错误地将其后的任何单词大写

是否有人可以通过输入,比如说,
来调用函数,该函数将插入字符
,如
,即
,然后自动将下一步键入的单词小写


奖励:做同样的事情。。。对于椭圆

将此添加到.emacs:

(setq auto-capitalize-predicate
      (lambda () (not (looking-back
           "\\([Ee]\\.g\\|[Ii]\\.e\\)\\.[^.]*" (- (point) 20)))))
请记住,如果您的 自动大写单词变量设置为包含“I”

(setq自动大写单词'())
这会将其设置为零

这里有一个版本也处理省略号:

(setq auto-capitalize-predicate
      (lambda () (not (looking-back
           "\\([Ee]\\.g\\|[Ii]\\.e\\|\\.\\.\\)\\.[^.]*" (- (point) 20)))))

但您可能需要研究一些abbrev魔术,它将三个句点转换为unicode省略号。这取决于您。

来自auto-capitalize.el:

;; To prevent a word in the `auto-capitalize-words' list from being
;; capitalized or upcased in a particular context (e.g.
;; "GNU.emacs.sources"), insert the following whitespace or
;; punctuation character with `M-x quoted-insert' (e.g. `gnu C-q .').

我使用它,这是一种舒适的方法。

当使用
例如
时,每个后面都应该有一个逗号——这应该避免混淆它是一个句子的结尾。您可以使用函数
(句尾)
M-x re-builder
中的regexp检查它。虽然有不同的视图,但这一个支持我的立场,所以我选择了--:)--
auto capitalize.el
不是GNU Emacs的一部分。我的建议是询问该库的维护人员(Kevin Rodgers)。但您也可以尝试将
句子结尾双空格
设置为non-
nil
(默认值),然后使用两个空格分隔句子。一个猜测是,
自动大写.el
可能会将
句尾双空格
与DTRT wrt
相关联,例如
等。谢谢,这非常有效!问题:有没有办法将此列表保持为纯文本格式,以便我可以更轻松地添加到其中?我问这个问题的原因是因为我想在列表中添加单词“vs.”(例如“good vs.evil”),但我无法在所有斜杠转义的情况下获得正确的regexp。如果实际列表的代码如下所示,则会更容易:
(setq*自动大写异常*(list“e.g.”“e.e.”vs.“…”-[])
有人可以编写一个程序将这些字符串转换为合适的正则表达式,但我还没有看到。