【发布时间】:2012-05-22 13:54:29
【问题描述】:
我需要访问 Emacs 缓冲区中的选择。 我找到了这篇文章How do I access the contents of the current region in Emacs Lisp? 对我帮助很大。
但是有一个问题。第一次选择(突出显示)一个区域时,它可以正常工作,但是当我按 Cg 并将光标正常移动到另一个位置而不突出显示任何字符时,我得到了一个从最后一个标记到当前点的字符串,而我期望一个空的.
实际上我需要实现一个函数,它将当前选择(突出显示)作为字符串返回,如果没有突出显示,则返回空字符串。下面的代码可能会更清楚地表达我。
(defun get-search-term ()
(interactive)
(let (
(selection (buffer-substring-no-properties (region-beginning) (region-end))))
(if (= (length selection) 0)
(message "empty string")
(message selection))))
有什么建议吗?非常感谢!
【问题讨论】:
-
您没有使用 Gareth Rees 在您链接到的问题中显示的
interactive表单的任何原因? -
感谢您的回复,也很抱歉没有仔细阅读该文章。 (交互式“r”)解决了我的问题。我需要阅读有关交互式的更多信息。
-
似乎还没有。我修改了我的代码并测试了 Gareth Rees 的,问题仍然存在。也许我需要在获取区域之前清除点和标记?
-
顺便说一句,很抱歉我的第一条评论,也许我没有足够的测试。