有没有办法知道有设置标记开始,哪里是lisp
中的起点查询答案 0 :(得分:3)
使用变量mark-active
:
mark-active is a variable defined in `C source code'.
Its value is nil
Local in buffer whole-line-or-region.el; global value is nil
Automatically becomes buffer-local when set in any fashion.
Documentation:
Non-nil means the mark and region are currently active in this buffer.
您可能还想检查mark === point,如果它确实是您正在寻找的区域:
(if (and mark-active
(/= (point) (mark)))
如果要编写需要定义区域的函数,可以使用interactive
,如下所示:
(defun my-fn-that-requires-a-region (beg end)
"Some documentation string mentioning BEG and END."
(interactive "r")
(message "%d / %d" beg end))
如果以交互方式调用,则必须设置标记或生成错误。以编程方式调用,必须传入任何两个值;没有完成参数验证。
答案 1 :(得分:1)
我建议开启transient-mark-mode
(setq transient-mark-mode t)
transient-mark-mode
会突出显示商标与当前点之间的区域。
或者,您可以按C-x C-x
在当前点和标记之间跳转,以查看标记的设置位置。