[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
resolve rename-buffer conflicts
From: |
Hongxu Chen |
Subject: |
resolve rename-buffer conflicts |
Date: |
Fri, 14 Jun 2013 09:54:04 +0800 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) |
Hi,
I have followed some tips to rename file(and the corresponding buffer
name) like this below:
,----------[ rename-this-file ]
| (defun rename-this-file (new-name)
| "Renames both current buffer and file it's visiting to NEW-NAME."
| (interactive "sNew name: ")
| (let ((name (buffer-name))
| (filename (buffer-file-name)))
| (unless filename
| (error "Buffer '%s' is not visiting a file!" name))
| (if (get-buffer new-name)
| (message "A buffer named '%s' already exists!" new-name)
| (progn
| (rename-file filename new-name t)
| (rename-buffer new-name t)
| (set-visited-file-name new-name)
| (set-buffer-modified-p nil)))))
`----------
Since there might be a buffer name conflict I am using `(rename-buffer
new-name t)' inside this function instead(according to the docstrings,
if the last argument is non-nil it is supposed to generate a new buffer
name when there is a conflict). However it DOESN'T work at all. It
reports like below:
A buffer named 'test.cpp' already exists!
But it works fine when invoking `rename-buffer' interactively like `C-u
M-x rename-buffer'.
So Why it fails for the snippet above?
(I also use uniquify.el but I don't believe it is a problem since it
defines an advice `rename-buffer-uniquify')
--
Regards,
Hongxu Chen
- resolve rename-buffer conflicts,
Hongxu Chen <=