org-mode中的POM(点或标记)

6
我正在尝试使用函数org-entry-propertiesorg-id-get,二者都使用可选参数pom。例如,org-entry-properties文档中写道:
获取点或标记POM处的条目的所有属性。 Emacs手册几乎没有提到“标记”这个词,但是有几个以-marker结尾的函数。现在我有几个问题:
1. 什么是点或标记? 2. 它是否与标记环中的标记相同? 3. 如何在org-mode缓冲区中获取一个标记? 4. 如何在上述函数调用中使用此标记?
2个回答

10
在一个缓冲区中,(绝对)位置由一个数字表示,大致是该位置之前的字符数。另一方面,标记允许标记缓冲区中的“相对位置”:如果在其前面添加了文本,则其向前移动(就像它是一个看不见的零宽度字符)。
随时可以将标记转换为(绝对)位置(整数)。这就是为什么许多参数想要POM的原因:它们想要一个位置,但接受它作为标记。
在Emacs中,“标记”是一种特定的标记,可以通过适当的键盘快捷键轻松访问(C-SPC设置它,C-x C-x交换标记和插入点等)。
“标记环”是所有先前“标记”标记的历史记录(无论是在给定的缓冲区中,即本地标记环,还是全局范围内,即所谓的全局标记环)。
更多信息请参见elisp手册:

4
不要参考Emacs手册,更多关于标记的信息可以在Emacs Lisp参考手册中查看。
引用如下: 标记是一种Lisp对象,用于指定与周围文本相对应的缓冲区中的位置。每当插入或删除文本时,标记会自动改变其从缓冲区开始处的偏移量,以便它保持在其两侧的两个字符上。
因此,你所提到的函数的POM元素可以是标记——即一个包含缓冲区和缓冲区中的位置的Lisp对象,也可以只是一个位置。在第一种情况下,函数将首先切换到标记所在的缓冲区,并将点移动到标记的位置,然后执行函数的其余部分。
在第二种情况下,它将保留在当前缓冲区中,但将点移动到给定位置,然后执行函数的其余部分。
也就是说,函数相对于给定的缓冲区/位置执行。在函数体的末尾,还原了point的原始位置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接