经常发生这样的情况:我想在另一个地方(缓冲区或不同的 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