由于button并未保存下来button所在的buffer是哪个,它直接假定当前buffer就是button所在的buffer.
因此使用 button-label
获取button label时,会直接从当前buffer中截取相应位置的内容.
若此时更改了buffer,则结果很可能时错误的.
下面是button-label的定义
(defun button-label (button)
"Return BUTTON's text label."
(if (button--area-button-p button)
(substring-no-properties (button--area-button-string button))
(buffer-substring-no-properties (button-start button)
(button-end button))))