C-SPACE 会选中一片文本区域,如何把这个被选中区域的文本导入到一个LIsp变量中呢?
M-w
复制,然后手动setq
,不失为一种解决办法……
1 个赞
这样?
(setq variable (buffer-substring-no-properties (region-beginning) (region-end)))
1 个赞
一切工作都应当自动化
(笑)
如果你定义函数用了 interactive 的话,可以直接 (interactive "r")
来获取到选中的前后坐标。然后再用 buffer-substring
或其它相关的。
3 个赞
总结一下:
(defun beginner-translate-main (content_start content_end)
"The main part of the program."
(interactive "r")
(message (buffer-substring content_start content_end))
)
(global-set-key (kbd "C-x t") 'beginner-translate-main)
这样就可以在按下C-x t的时候获取被选中的内容了,感谢@VonFry!
这确实解决了我最初的需求
但是这个方案的问题在于:
当没有任何被选中内容时,整个区块的内容全部被填入变量,造成程序出错.