我想在函数中作为字符串访问当前区域的内容。例如:
(concat "stringa" (get-region-as-string) "stringb")
感谢
Ed
(buffer-substring (mark) (point))
返回区域的内容。如果不想要字符串属性,可以使用'buffer-substring-no-properties
变量。(interactive "r")
。下面是simple.el
中的一个例子:
(defun count-lines-region (start end) "Print number of lines and characters in the region." (interactive "r") (message "Region has %d lines, %d characters" (count-lines start end) (- end start)))当从Lisp代码调用时,
(interactive ...)
表单会被忽略,因此您可以使用此函数来计算缓冲区的任何部分中的行数,而不仅仅是区域,通过传递适当的参数:例如,(count-lines-region (point-min) (point-max))
计算缩小后缓冲区的行数。但是,在交互方式调用时,(interactive ...)
表单会被评估,并且代码"r"
会提供点和标记作为两个数字参数,最小值在前。buffer-substring
与region-beginning
和region-end
一起使用可以实现该功能。
filter-buffer-substring
而不是简单的buffer-substring
。在复制之前,该函数会从一个名为filter-buffer-substring-functions
的列表变量中应用过滤函数。该函数是在22.3版本中添加的。