在Emacs中插入一些东西杀死戒指

jcu*_*bic 9 emacs elisp yank kill-ring

我想编写一个函数,将当前缓冲区的文件名插入到kill环中,这样我就可以将它放到另一个窗口的终端中.如何以编程方式将字符串插入kill ring?

(<SOME FUNCTION> (buffer-file-name))
Run Code Online (Sandbox Code Playgroud)

是否有(内置)函数或者我需要将我想要的字符串插入缓冲区然后将其删除?

我试过这样的事情:

(defun path ()
  (interactive)
  (save-excursion
    (let ((begin (mark)))
      (insert (buffer-file-name))
      (kill-region begin (mark)))))
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

abo*_*abo 15

有一个功能:

(defun copy-buffer-name ()
  (interactive)
  (kill-new (buffer-file-name)))
Run Code Online (Sandbox Code Playgroud)

  • @jcubic然后要知道`(buffer-file-name)`可以是`nil`,这会使`kill-new`信号出错.你应该用`(when(buffer-file-name)...)`来保护表达式 (2认同)
  • @lunaryorn好的,我的功能现在是: `(let ((path (buffer-file-name))) (when path (kill-new path)))` (2认同)