有时我编辑具有特定后缀的文件和具有相同基本名称但具有相同后缀的文件。由于基本名称很长而且很笨拙,我想重用现有的文件名来构造另一个名字。
我目前所做的是:
C-x C-b (这显示我的缓冲区列表)
C-x o (现在我在缓冲区列表中)
M-right M-left (在基名的开头)
C-space M-right ... M-w (复制基名)
C-x o (回到我来自的地方)
...
必须有更规范的方法来做到这一点! (我对涉及正确定义命令的方式不感兴趣,我已经有太多了......)
编辑:实际上,我想要的是用这个名字做一些事情,最常见的是创建或阅读相关文件。 @Trey Jackson的 C-x C-v 就是这样!
答案 0 :(得分:5)
严格地说,即使您不想要命令,此命令也会执行您想要的操作:
(defun copy-base-filename-as-kill ()
(interactive)
(let ((filename (buffer-file-name)))
(when filename
(kill-new (file-name-nondirectory (file-name-sans-extension filename))))))
但是,如果你真的只是用这个名字来做别的事情......或许更好的解决办法是让其他事情变得更容易。
如果您要执行的操作是根据当前名称创建新名称,请尝试命令 Cx Cv (又名 Mx find-alternate-file )。
答案 1 :(得分:0)
我认为没有任何开箱即用的功能,但这里有一个小功能:
(defun copy-buffer-filename ()
(when (buffer-file-name)
(kill-new (file-name-nondirectory (buffer-file-name)))))