![Emacs 中是否有一个用户界面允许人们方便地“获取”缓冲区的文件名?](https://linux22.com/image/16506/Emacs%20%E4%B8%AD%E6%98%AF%E5%90%A6%E6%9C%89%E4%B8%80%E4%B8%AA%E7%94%A8%E6%88%B7%E7%95%8C%E9%9D%A2%E5%85%81%E8%AE%B8%E4%BA%BA%E4%BB%AC%E6%96%B9%E4%BE%BF%E5%9C%B0%E2%80%9C%E8%8E%B7%E5%8F%96%E2%80%9D%E7%BC%93%E5%86%B2%E5%8C%BA%E7%9A%84%E6%96%87%E4%BB%B6%E5%90%8D%EF%BC%9F.png)
经常发生这样的情况:我想在另一个地方(缓冲区或不同的 X 程序,例如终端)使用 Emacs 中某个缓冲区中打开的文件的路径(完整路径或基本名称)。我想知道 Emacs“用户界面”中是否有一些预定义的子系统可以将当前缓冲区 ( (buffer-file-name)
) 的文件名复制到终止环。
相关内容: emacs-w3m 中有一个简单的命令可以执行类似的操作 ( y-- w3m-print-current-url
):它打印 URL 并将其复制到kill-ring。
当然,我可以简单地定义我想要的命令,但我问这个问题是因为我希望学习 Emacs 的一些用户界面子系统,其中包括这种可能性以及其他功能。 (也许,一些缓冲区和路径操作接口。)这样我就会了解Emacs更多有用的功能。
答案1
我这样做:
- C-x C-v(查找备用文件)
- C-a(移动行首)
- C-k(杀戮线)
- C-g(键盘退出)
它比使用迷你缓冲区历史记录更快。如果您想要的只是基本名称,则速度更快 - 只需跳过C-a第二步即可。
答案2
在默认设置中复制当前文件名称的最快方法是
C-x C-f find-file
down next-history-element
C-SPC C-a M-w select and copy the minibuffer contents
C-g abort find-file