我想在Emacs中能够通过句子进行导航(M-a, M-e)。问题是:默认情况下,Emacs期望每个句子之间有两个空格,而我习惯于只放一个空格。当然,可以关闭该设置,以允许只用一个空格分隔句子,方法如下:
(setq sentence-end-double-space nil)
然而,Emacs在缩写后的句点(".")后认为句子已经结束了,例如在类似"...一个奇怪的命令,例如foo..."之后。
所以,有没有一种方法可以定义sentence-end变量,让其将[.!?]视为标志句子的结尾,当且仅当接下来的是一个或多个空格,后面跟着一个大写字母[A-Z]?
还有...如果后面跟着零个或多个空格,再跟着一个"\", 那么也允许[.!?]标记句子的结尾吗?[这种情况的原因是为了编写LaTeX代码:其中一个句子后面跟着一个像\footnote{}这样的LaTeX命令,例如"...所以我们可以看到该点已被证明。\footnote{至少在某个替代的世界里。}"]
我尝试过对sentence-end的定义进行调整,并得出了以下内容:
(setq sentence-end "[.!?][]'\")}]*\\(\\$\\|[ ]+[A-Z]\\|[ ]+[A-Z]\\| \\)[
;]*")
但是这似乎完全没有用。
有什么建议吗?
sentence-end
值是否也适用于印度现代语言或梵文,以通常在天城体中输入的方式? 如果不行,我们能否提出改进意见? - imz -- Ivan Zakharyaschev