我如何在Emacs中重命名打开的文件?

有没有办法在Emacs中重命名打开的文件? 正在查看它吗? 像保存一样,但原来的应该消失。


试试Steve Yegge的.emacs中的这个函数:

;; source: http://steve.yegge.googlepages.com/my-dot-emacs-file
(defun rename-file-and-buffer (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)))
    (if (not filename)
        (message "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 1)
          (rename-buffer new-name)
          (set-visited-file-name new-name)
          (set-buffer-modified-p nil))))))

看看那个页面,那里有另一个非常有用的相关函数,叫做“move-buffer-file”。


是的,在dired模式下,您可以:

  • Cx Cj (直接dired-jump到Dired中当前文件的名称)
  • R重命名文件(或直接dired-do-rename )。
  • Cx k RET返回到(重命名的)文件缓冲区
  • 重命名等同于shell mv ,但它也会更新任何打开的缓冲区。


    只是为了完整性,因为有些人可能会访问这个页面,认为他们会得到Emacs的“另存为”功能的答案,这就是打开文件的Cx Cw。

    链接地址: http://www.djcxy.com/p/38565.html

    上一篇: How do I rename an open file in Emacs?

    下一篇: How to set the font size in Emacs?