2013-06-24 61 views
1

假設我在Emacs中編輯我的主目錄中的文件t.txt。然後 ESC-: buffer-file-name產生/Home/fcihh/t.txt如何從中提取文件名部分t.txt如何確定Emacs緩衝文件名的基名?

根據this link我想我應該可以寫 ESC-: (file-name-base buffer-file-name)。但這會產生錯誤

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

我在Ubuntu 12.04上使用GNU Emacs 23.3.1。

回答

3

不幸的是file-name-base已在Emacs 24.這是介紹的是它的定義,從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))))) 

兩個file-name-sans-extensionfile-name-nondirectory應可在Emacs 23

如果你想帶擴展名的基本名稱只需要file-name-nondirectory

+0

謝謝,這個作品完美:-) –

相關問題