我想写一个函数,在当前缓冲区中插入文件名到kill ring中,以便我可以在另一个窗口的终端中粘贴它。如何编程将字符串插入到kill ring中?
(<SOME FUNCTION> (buffer-file-name))
有没有(内置)函数可以实现这个功能,或者我需要将想要的字符串插入缓冲区然后删除它?
我尝试了类似于这样的代码:
(defun path ()
(interactive)
(save-excursion
(let ((begin (mark)))
(insert (buffer-file-name))
(kill-region begin (mark)))))
但是它不起作用。
buffer-file-name
很好,因为我只需要获取文件名。 - jcubic(buffer-file-name)
可能为nil
,这会导致kill-new
发出错误信号。您应该使用(when (buffer-file-name) …)
来保护表达式。 - user355252(let ((path (buffer-file-name))) (when path (kill-new path)))
- jcubic