我在Ubuntu 12.04上使用GNU Emacs 24.3.1。我对理解push-mark
函数有疑问。例如,打开一个空缓冲区,键入一些文本,并在echo区域中执行(print mark-ring t)
给出nil
。然后做
(push-mark)
再次(print mark-ring t)
在回显区域中仍然显示nil
。我以为我现在会在标记环中看到一些东西。此外,此时执行新的(push-mark)
,然后(print mark-ring t)
显示前一个标记现在位于标记环内。
答案 0 :(得分:4)
当缓冲区是新的时,它没有当前标记,标记操作将失败或什么都不做。在标记后,可能使用C-SPC
,标记环应按预期进行。
如果标记不存在,显然会调用(push-mark)
来创建标记,可能是非预期的副作用。