假设我在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。
答案 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-extension
和file-name-nondirectory
。
如果您希望基本名称带有扩展程序,则只需file-name-nondirectory
。