如何确定Emacs缓冲区文件名的基本名称?

时间:2013-06-24 13:28:32

标签: emacs

假设我在Emacs中编辑了我的主目录中的文件t.txt。然后 ESC-: buffer-file-name生成/Home/fcihh/t.txt如何从中提取文件名部分t.txt

根据this link我认为我应该能够写作 ESC-: (file-name-base buffer-file-name)。但这会产生错误

Lisp error: (void-function file-name-base)

我在Ubuntu 12.04上使用GNU Emacs 23.3.1。

1 个答案:

答案 0 :(得分:5)

不幸的是,在{Emacs 24中引入了file-name-base。这是lisp/files.el的定义:

(defun file-name-base (&optional filename)
  "Return the base name of the FILENAME: no directory, no extension.
FILENAME defaults to `buffer-file-name'."
  (file-name-sans-extension
   (file-name-nondirectory (or filename (buffer-file-name)))))

Emacs 23中应该提供file-name-sans-extensionfile-name-nondirectory

如果您希望基本名称带有扩展程序,则只需file-name-nondirectory