如何在 Emacs 中重命名打开的文件? [英] How do I rename an open file in Emacs?

查看:22
本文介绍了如何在 Emacs 中重命名打开的文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有办法在 Emacs 中重命名打开的文件?我在看的时候?类似于另存为的东西,但原始的应该消失.

解决方案

试试这个功能来自 Steve Yegge 的 .emacs:

<前>;;来源:http://steve.yegge.googlepages.com/my-dot-emacs-file(defun rename-file-and-buffer (new-name)将当前缓冲区和它正在访问的文件重命名为 NEW-NAME."(交互式sNew 名称:")(让((名称(缓冲区名称))(文件名(缓冲区文件名)))(如果(不是文件名)(消息缓冲区 '%s' 未访问文件!"名称)(如果(获取缓冲区新名称)(消息名为 '%s' 的缓冲区已经存在!"新名称)(程序(rename-file filename new-name 1)(重命名缓冲区新名称)(set-visited-file-name new-name)(set-buffer-modified-p nil))))))

看看那个页面,那里有另一个非常有用的相关函数,称为移动缓冲区文件".

Is there a way to rename an open file in Emacs? While I'm viewing it? Something like save-as, but the original one should go away.

解决方案

Try this function from Steve Yegge's .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))))))

Take a look at that page, there's another really useful related function there, called "move-buffer-file".

这篇关于如何在 Emacs 中重命名打开的文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆