help-gnu-emacs
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]